先生/女士 需要帮助
我想在文本字段中显示数据库中的记录。即使代码调试成功,我也没有得到它的结果
我是编程语言的新手
* 这些是我的代码*
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.*;
public abstract class customer_details extends JFrame implements ActionListener
{
JTextField cust_id,cust_nm,cont;
JLabel l1,l2,l4,l5;
JButton b1,b2;
private PreparedStatement ps;
Container c = getContentPane();
customer_details()
{
super("ancfsdfasdfasfas");
setBounds(140,250,777,555);
c.setLayout(null);
cust_id = new JTextField();
l1 = new JLabel("Update Customer Details");
l2 = new JLabel("Customer Id");
l1.setBounds(10,10,340,20);
l2.setBounds(10,20,140,70);
l4 = new JLabel("Customer Name");
l4.setBounds(90,140,100,20);
cust_nm = new JTextField();
cust_nm.setBounds(90,160,160,20);
l5 = new JLabel("Contact No");
l5.setBounds(270,140,100,20);
cont = new JTextField();
cont.setBounds(270, 160, 100, 20);
cust_id.setBounds(10,70,70,20);
b1 = new JButton("View");
b1.setBounds(90,70,90,20);
b2 = new JButton("Update");
b2.setBounds(10,200,90,20);
c.add(l1);
c.add(l2);
c.add(l4);
c.add(l5);
c.add(cust_id);
c.add(cust_nm);
c.add(cont);
c.add(b1);
c.add(b2);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
b1.addActionListener(this);
b2.addActionListener(this);
}
public static void main(String[] args)
{
customer_details cpap=new customer_details() {};
}
public void actionPerformed(ActionEvent e)
{
System.out.println("You clicked the button");
if(e.getSource()==b1)
{
try
{
Connection con;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Dalvi");
ResultSet rs = null;
try
{
java.sql.Statement st = con.createStatement();
PreparedStatement ps = con.prepareStatement("select from customer_details (customer_name,contact_no) where customer_id=?)");
ps.setString(1,cust_id.getText());
if (rs.next())
{
cust_nm.setText(rs.getString("customer_name"));
cont.setText(rs.getString("contact_no"));
}
JOptionPane.showMessageDialog(null,"You Successfully Deleted The Customer");
}
catch (SQLException s)
{
System.out.println("SQL code does not execute.");
JOptionPane.showMessageDialog(null,"Please Enter the Detail Correctly");
}
}
catch (ClassNotFoundException | SQLException ee)
{
System.out.println("Error:connection not created");
JOptionPane.showMessageDialog(null,"Please Enter the Detail Correctly");
}
}
}
}
感谢您的帮助:)
答案 0 :(得分:2)
目前,基于你的例子,你应该得到一个例外...
select from customer_details (customer_name,contact_no) where customer_id=?
不是有效查询。它看起来应该更像
select customer_name, contact_no from customer_details where customer_id=?
答案 1 :(得分:1)
您的查询存在问题。纠正它,并在你有任何记录时返回你的控制。
if (rs.next())
{
cust_nm.setText(rs.getString("customer_name"));
cont.setText(rs.getString("contact_no"));
return;
}
答案 2 :(得分:1)
您ResultSet
为空。您尚未执行查询以返回ResultSet
PreparedStatement ps = con.prepareStatement("select customer_name, contact_no from customer_details where customer_id=?");
ps.setString(1,cust_id.getText());
rs = ps.executeQuery();
if (rs.next())
{
cust_nm.setText(rs.getString("customer_name"));
cont.setText(rs.getString("contact_no"));
}
我在结果集代码
之后也注意到了这一点JOptionPane.showMessageDialog(null,"You Successfully Deleted The Customer");
这告诉我也许你想删除一条记录。仅仅是一个FYI,SELECT
不会删除数据库记录。