android
2012-03-28 6 views -1 likes 
-1

DbAdapter機能のうち、バインドまたはインデックス列を取得する:私はアプリを実行すると、私は範囲SQL例外

public boolean test(String username, String password){ 
     boolean x; 
     Cursor c = mDb.rawQuery("SELECT _id FROM Login WHERE Customer_Name='?' AND Password='?'", new String[] {username, password}); 
     if(c.moveToFirst()) { 
      x=true; 
     } else { 
      x=false; 
     } 
    return x; 
    } 

答えて

0

あなたは、テーブルの作成を示し、より多くのコードを、提供してもらえます。私の知る限りでは、上記のコードは正常に見えます。一致しない変数である可能性があります。

+0

プライベート静的最終列DATABASE_CREATE0は= + _id整数主キー自動インクリメント);" テーブルを作成するログイン" しなければなりません。 –

0

多くの場合、Customer_Nameまたはパスワードはテーブルの列ではありません。

0

だけでなく、列名のチェックなどが存在します

  1. は、あなたは間違いなく存在し、ユーザー名とパスワードの値でそれを試してみましたか?そして、ヌルじゃない?
  2. 疑問符を一重引用符で囲まずに試しましたか?
+0

私はboolean x = DBHelper.test(UNAME、UPASS)のようなDBHelperオブジェクトの助けを借りて値を渡します。これらの値は私のUIの編集ボックスから集められます。 –

2

?を一重引用符で削除しても問題ありません。 " "(NOT NULL、パスワードテキストnullでないCUSTOMER_NAMEテキスト

正しいコードは

Cursor c = mDb.rawQuery("SELECT _id FROM Login WHERE Customer_Name=? AND Password=?", new String[] {username, password}); 
+0

ありがとうございました! –

+0

しかし、認証はチェックされません。常に真を返します。 –

+0

sqlクエリが正常に見えます。関数に渡されるユーザー名とパスワードの値を確認します。また、rawQueryメソッドの代わりにクエリを使用してみてください。 – vKashyap

関連する問題