Sql server Java&SQL Server异常:该语句未返回结果集
我正在大学为我的DBMS项目创建一个保险管理系统,我在从SQL Server中删除记录时遇到问题。它抛出一个异常: SqlException:com.microsoft.sqlserver.jdbc.SQLServerException:语句未返回结果集 它还成功地从我的数据库中删除了一条记录。有人能告诉我如何删除这种异常吗Sql server Java&SQL Server异常:该语句未返回结果集,sql-server,Sql Server,我正在大学为我的DBMS项目创建一个保险管理系统,我在从SQL Server中删除记录时遇到问题。它抛出一个异常: SqlException:com.microsoft.sqlserver.jdbc.SQLServerException:语句未返回结果集 它还成功地从我的数据库中删除了一条记录。有人能告诉我如何删除这种异常吗 String SQL="delete from INMS_3 where Agent_Id=? and First_Name=? and Last_Name=? and
String SQL="delete from INMS_3 where Agent_Id=? and First_Name=? and Last_Name=? and User_Name=? and Phone_no=?";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=INMS;user=TestingUser;password=1234;";
Connection con = DriverManager.getConnection(connectionUrl);
System.out.println("Connected to sql server");
String str=jTextField1.getText();
String str1=jTextField2.getText();
String str2=jTextField3.getText();
String str3=jTextField4.getText();
String str4=jTextField5.getText();
PreparedStatement st = con.prepareStatement(SQL);
st.setString(1, str);
st.setString(2,str1);
st.setString(3,str2);
st.setString(4,str3);
st.setString(5, str4);
ResultSet rs = st.executeQuery();
if(rs.next());
{
JOptionPane.showMessageDialog(null,"Deleted Succesfully");
}
if(!rs.next())
{
JOptionPane.showMessageDialog(null,"Unable to delete");
}
else
{
JOptionPane.showMessageDialog(null,"Unable to delete");
}
} catch (SQLException e) {
System.out.println("SQL Exception: "+ e.toString());
} catch (ClassNotFoundException cE) {
System.out.println("Class Not Found Exception: "+ cE.toString());
}
我认为您使用了错误的东西来执行删除操作。
尝试使用st.executeUpdate而不是ResultSet rs=st.executeQuery-您执行的是删除操作,而不是返回结果集的操作 这不是SQL Server的问题。问题在于你的代码那是什么?C该对象被设置为期望来自服务器的结果集,但查询是一个DELETE语句,这些语句不返回任何行。。。永远 说明编程语言,并研究如何执行语句而不是请求结果集 这一行对于选择而不是更新是有意义的
ResultSet rs = st.executeQuery();
如果您正在执行delete语句,为什么要执行
ResultSet rs = st.executeQuery();
下面是一个c ado.net示例。如果您使用java,概念是一样的
using(var conn = new SqlConnection("my connection string"))
{
var deleteCmd = new SqlCommand();
deleteCmd.Connection = conn;
deleteCmd.CommandType = CommandType.Text;
deleteCmd.CommandText = @"
DELETE Accounts
WHERE account_id = @p_account_id
";
deleteCmd.Parameters.AddWithValue("p_account_id", 123);
conn.Open();
deleteCmd.ExecuteNonQuery();
}
完全正确这才是真正的答案。