2011-12-28 10 views
0

私のアプリでSQLiteデータベースに少し問題がありました。 私の目標は、データベースに行が存在しない場合はそれを挿入し、それ以外の場合は行を更新することです。既存の行でないAndroid SQLクエリ

特定の条件の行が存在するかどうかを確認するにはどうすればよいですか?

私が試した:

Cursor cursor = dbAdapter.query(dbName, null, "xcoord="+xcoord+" AND ycoord="+ycoord+" AND mac='"+mac+"'"+" AND ssid='"+ssid+"'", null, null, null, null); 
cursor.isNull(cursor.getColumnIndex("ssid")); 
をして、カーソルがnullであるかどうかを確認するために?しかし、私はこのSQLExceptionを得た:

致命的な例外:メイン

android.database.CursorIndexOutOfBoundsException:インデックス-1要求され、android.database.AbstractCursor.checkPositionで0

(の大きさをAbstractCursor.java:580)

ありがとうございます。

+0

例外はありますか? –

答えて

1

とにかく私はいつもif (cursor != null && cursor.moveToFirst())

を行うことがfalseと評価された場合、あなたはテーブルを持っていないのいずれか、またはあなたが、レコードを持っていません。

0

クエリから単語EXISTSを削除します。行が戻ってきた場合、その行がそこにあることがわかります。

EXISTS節は、(サブ選択または結合のように)オペランドとして行セットを取り、存在するかどうかに基づいて真または偽として評価します。

これを処理する最善の方法ではないかもしれませんが、通常はINSERTを試してみます。例外が発生した場合はUPDATEを実行します。カーソルでの作業を始める前に

+0

申し訳ありませんが、私の間違いでした、私は間違ったコードをコピーした – LikeMusic

関連する問題