【问题标题】:values are not being inserted into resultset after executing preparedstatement in executeQuery()在executeQuery()中执行preparedstatement后,值没有被插入到结果集中
【发布时间】:2012-12-09 08:54:03
【问题描述】:

我写了以下代码

PrepareStatement stmt=con.prepareStatement("select * from studentdetails where sname=?");
String snm=jTextField10.getText();
ps.setString(1,snm);
ResultSet rs=stmt.executeQuery();

我面临的问题是结果集是空的,我已经检查了数据库并且我在 gui 中为搜索提供的值是有效的。请告诉我是什么问题。

【问题讨论】:

  • 你的意思是stmt.setString(1,snm);
  • 你确定jTextField10.getText()中有一个值吗? ??
  • 你做了 rs.first 和/或 rs.next 吗?
  • 继 Pradeep 之后,您确定文本字段值中没有前导或尾随空格吗?

标签: java jdbc resultset


【解决方案1】:
PreparedStatement stmt=con.prepareStatement("select * from studentdetails where sname=?");
String snm=jTextField10.getText();
stmt.setString(1,snm);
ResultSet rs=stmt.executeQuery();

试试上面的代码。您的代码中的一切都很好,唯一的问题是“PreparedStatement 实例”和“PrepareStatement”。它是'PreparedStatement',你错过了那里的'd'。您已经声明了一个名为“stmt”的 PreparedStatement 实例,但您使用另一个名为“ps”的值设置了值。

小记:

我不喜欢你给 JTextField 取的名字。在 OOP 中,建议给实例、对象、方法、变量等起一个有意义的名称

【讨论】:

    【解决方案2】:

    写这一篇这可能对你有帮助。

    PrepareStatement stmt = con.prepareStatement("select * from studentdetails where sname=?");
    String snm=jTextField10.getText();
    stmt.setString(1,snm);
    ResultSet rs=stmt.executeQuery();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多