2017-11-11 3 views
0

のうちパラメータインデックスがのJavaのPreparedStatement:ます。com.microsoft.sqlserver.jdbc.SQLServerException:私は範囲

JAVA 8でJava PreparedStatementを使用してSQLクエリを実行しようとすると、コードブロー
 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     con = DriverManager.getConnection(URl,user,""); 
     String sql = "Select Grade from XS_KC where Snum=? and Cnum=?"; 
     PreparedStatement pst = con.prepareStatement(sql); 
     pst.setString(1, "020101"); 
     pst.setString(2, "102"); 
     rs = pst.executeQuery(); 
     while(rs.next()) 
     { 
      System.out.print(rs.getString(1)); 
     } 

私はfllowingを取得エラー:com.microsoft.sqlserver.jdbc.SQLServerException:parameter index out of range が、私は

stat = con.createStatement(); 
rs = stat.executeQuery("Select Grade from XS_KC where Snum='020101' and Cnum='101'"); 

を使用している場合、私は間違って何結果 を得ることができます?

+0

あなたは異なるカラム名、異なる値(102対101)を持っている...私は実際のコードとSQ​​L文は、私は申し訳ありません –

+0

をしているのだろうかなります。私は列名を変更することを忘れています。それは鍵ではありません。私はちょうどそれを英語に翻訳するので –

答えて

1

クエリの最初のは、0x3F00(疑問符)ではなくUnicode 0x1FFFです。試してみてください:

String sql = "Select Grade from XS_KC where Snum=? and Cnum=?"; 
+0

ありがとうございます。多分、これは母国語が英語でない人々の悲しみです –