2017-08-21 21 views
1

setStringに問題があります。 %setStringのパラメータに追加すると、何も書き込まなくても動作します。しかし、私はそれを削除すると動作しません。誰も助けることができますか?準備文とsetString

String Id= User1.getText().toString(); 
String Passwords = Pass.getText().toString(); 


btnlogin.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
     String query = "SELECT * FROM TABLE WHERE id LIKE ? AND pass LIKE ? "; 
      try { 
       if (connect != null) { 
        PreparedStatement statement = connect.prepareStatement(query); 
       statement.setString(1, Id); // statement.setString(1 ,"%" + Id + "%"); 
       statement.setString(2 ,Passwords);// statement.setString(2 ,"%" + Passwords + "%"); 
        r = statement.executeQuery(); 
        if (r.next()){ 

         Intent intent = new Intent(); 
         intent.setClass(Login.this, MainActivity.class); 
         startActivity(intent); 
          } 
        else { 
         message = "Error"; 
         info.setText(message); 
        } 

       } else { 
        message = "Error in connection with SQL server"; 
        info.setText(message); 
       } 


      } catch (SQLException e) { 
       etat = false; 
       message = "Got an exception!"; 
       System.err.println(e.getMessage()); 
      } 


    }}); } 

P.S:私はあなたのSQLクエリ構文などのために物乞いしているためであるエラー

+0

文字エンコードの問題でしょうか? –

+0

@Mauriceなぜそれが動作しないのか分かりません。 – Mimi

答えて

2

を取得していません。

%%を使用しない場合は、直接文字列とLIKEクエリを=クエリに渡します。

SELECT * FROM TABLE WHERE id = ? AND pass = ? 

しかし、同じような演算子でユーザー名とパスワードを確認するのはひどい考えです。彼らは常に等しいかどうかをチェックしてください。

+0

私は以前と同じように置き換えようとしましたが、動作しません。 – Mimi

+0

最終的なSQLクエリーが貼り付けられますか? –

+0

@ミミあなたのデータや入力に問題があり、それらをチェックし、あなたが共有しているものから正しい情報を使用していることを確認します。これがあなたの問題の正しい答えであるとわかります –