2016-04-15 15 views
2

私のデータベースへの特定のエントリの更新とクエリには苦労しています。 上記のコードはJobNoとdbのエントリを比較し、適切なものを更新しますが、特定のコンポーネントの更新のみを試みると2行目でエラーがスローされます。これはスローデータベース およびエラーからデータをフェッチするために照会するときsqlite.queryを書く正しい方法は何ですか? (Android)

 long id = db.update(DatabaseHelper.COMP_TABLE, contentValues, DatabaseHelper.HCJOBNO + " = '" + HCJobNo + "'" , null); 
    long id = db.update(DatabaseHelper.COMP_TABLE, contentValues, DatabaseHelper.HCJOBNO + " = " + HCJobNo + " AND " + DatabaseHelper.COMPONENTTAG + " = " + ComponentTag , null); 

Simliar。この最初の行は動作し、他の2つが間違っている

Cursor cursor = db.query(DatabaseHelper.COMP_TABLE, columns, DatabaseHelper.HCJOBNO + " = '" + JobNumber + "'", null, null, null, null); 
Cursor cursor = db.query(DatabaseHelper.CONDITION_TABLE, columns, DatabaseHelper.CONDITIONJOBNO + " =? AND " + DatabaseHelper.PARTTAG + " =?", selectionArgs, null, null, null, null); 
Cursor cursor = db.query(DatabaseHelper.COMP_TABLE, columns, DatabaseHelper.HCJOBNO + " = " + JobNumber + " AND " + DatabaseHelper.COMPONENTTAG + " = " + CompTag, null, null, null, null); 

この特定のコードを記述するための正しい方法は何ですか?

Cursor cursor = db.query(DatabaseHelper.COMP_TABLE, columns, DatabaseHelper.HCJOBNO + " = " + JobNumber + " AND " + DatabaseHelper.COMPONENTTAG + " = " + CompTag, null, null, null, null); 

編集:一見のコードのこの特定の文字列で 乾杯

long id = db.update(DatabaseHelper.COMP_TABLE, contentValues, DatabaseHelper.HCJOBNO + " = '" + HCJobNo + "' AND " + DatabaseHelper.COMPONENTTAG + " = '" + ComponentTag + "'", null); 
+0

それはどんなエラーを投げますか?テーブルはどのように定義されていますか? –

+0

android.database.sqlite.SQLiteException:いいえそのような列:ロッド(コード1): 答えはそれを固定 – Jube

+0

その後、ありがとう、答えを受け入れる。 –

答えて

4
Cursor cursor = db.query(DatabaseHelper.COMP_TABLE, columns, DatabaseHelper.HCJOBNO + " = " + JobNumber + " AND " + DatabaseHelper.COMPONENTTAG + " = " + CompTag, null, null, null, null); 

あなたは、変数の周りにアポストロフィを欠場 - あなたが最初の文字列で行うように。

" = '" + JobNumber + "'" 

あなたはすでに変数の値にそれらを含めていますか?

+0

甘いありがとう! これは他人のために行う正しい方法です。後でクエリを試してみてください! 回答、賞賛のための主な質問を表示します。 – Jube

関連する問題