0

这是我的代码:

public static void addRecord(String name, int index) throws IllegalAccessException, InstantiationException, SQLException, ClassNotFoundException {
  //  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

    String dbURL = "jdbc:sqlserver://localhost\\sqlexpress";
    String user = "sa";
    String pass = "mypass";
    Connection conn = DriverManager.getConnection(dbURL, user, pass);
    PreparedStatement Prep = conn.prepareStatement("insert into tblAll(AdSoyad,SiraNo) values(?,?);");
    Prep.setString(2, name);
    Prep.setInt(3, index);
    Prep.execute();
    Prep.close();
    Prep = null;
    conn.close();
    conn = null;
}

以下是我得到的错误:

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The index 3 is out of range.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(SQLServerPreparedStatement.java:700)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setValue(SQLServerPreparedStatement.java:709)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setInt(SQLServerPreparedStatement.java:870)
    at jmssql.JMsSQL.addRecord(JMsSQL.java:29)
    at jmssql.JMsSQL.main(JMsSQL.java:19)

如果我添加 dbUrl "integratedSecurity=true;" 部分;

错误是;

com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path

我找不到任何想法修复它,我该如何修复它?

4

1 回答 1

1

错误在这一行

 PreparedStatement Prep = conn.prepareStatement("insert into tblAll(AdSoyad,SiraNo) values(?,?);");
Prep.setString(2, name);
    Prep.setInt(3, index);

改成

PreparedStatement Prep = conn.prepareStatement("insert into tblAll(AdSoyad,SiraNo) values(?,?);");
    Prep.setString(1, name);
    Prep.setInt(2, index);
于 2013-09-05T06:42:26.553 回答