该语句未返回结果集。Java错误
我正在尝试使用JDBC从java中删除表中的数据。首先,我要计算行数,确保表不是空的,然后截断数据 这是我正在使用的代码该语句未返回结果集。Java错误,java,jdbc,resultset,truncate,Java,Jdbc,Resultset,Truncate,我正在尝试使用JDBC从java中删除表中的数据。首先,我要计算行数,确保表不是空的,然后截断数据 这是我正在使用的代码 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con = DriverManager.getConnection("jdbc:sqlserver://m-i:1433;databaseName=Tes", "sa", "Password"); Statem
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://m-i:1433;databaseName=Tes", "sa", "Password");
Statement cnnt= con.createStatement();
Statement del1 = con.createStatement();
ResultSet rs = cnnt.executeQuery("Select count(lea) AS cnt from dbo.Link");
int count= 0;
if(rs.next())
{
count = rs.getInt("cnt");
}
System.out.println(count);
if(count != 0)
{
del1.executeQuery("Truncate Table dbo.Link");
}
else
{
System.out.println("Table is already empty");
}
错误:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:800)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616)
错误出现在截断表dbo.Link上
我这样做对吗
有人能帮我做这个吗
谢谢。不要使用
executeQuery
执行DDL语句;使用
引用链接的Javadocs:
执行给定的SQL语句,该语句可以是INSERT、UPDATE或SQL语句
DELETE语句或不返回任何内容的SQL语句,例如
SQLDDL语句
(强调矿山)
truncate table语句是DDL语句。@Smit-选择不是问题所在。OP声明“错误在截断表dbo.Link上。”.Wow。非常感谢。我没有看到,在你更新答案之前,之前的评论是有效的。我将删除该评论。@感谢你为我这样的初学者提供了一个非常有用的答案。我有一个与我的java代码相关的simplequestion。以下是我在stakoverflow上提出的问题—异常(com.microsoft.sqlserver.jdbc.SQLServerException:索引0超出范围)的含义。我只是想知道有没有什么方法可以让我从数据库中自动获取列号,而不是在我的第一个for循环中手动输入列号