2014-01-13 36 views
0

先生/女士 需要你的帮助如何显示数据库中的记录到swing中的textfied?

我想DISPLY对文本框从数据库记录。我没有得到它的结果,即使代码调试成功

我在编程语言

* 新这是我的代码*

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

Ahhh,'null'布局...克服这一秒...什么是不工作? – MadProgrammer

回答

1
  1. 您的查询是错误的。看看@MadProgrammer的答案。
  2. 你是ResultSet为空。您还没有执行查询后的结果集代码

    JOptionPane.showMessageDialog(null,"You Successfully Deleted The Customer"); 
    

    这告诉我,也许你想删除一条记录返回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"));      
    } 
    
  3. 我也注意到了这一点。仅供参考,SELECT不会删除数据库记录。

+0

谢谢@MadProgrammer,@ peeskillet,@ Vinod Satpute – Devendra

2

根据你的例子,你应该得到一个例外......

select from customer_details (customer_name,contact_no) where customer_id=? 

不是一个有效的查询。它应该看起来更像

select customer_name, contact_no from customer_details where customer_id=? 
1

您的查询存在问题。修正它,并在有任何记录时返回您的控制权。

if (rs.next()) {
cust_nm.setText(rs.getString("customer_name")); cont.setText(rs.getString("contact_no")); return;
}

+0

谢谢先生。 我的问题已经解决。 上帝保佑你们所有人.. – Devendra

相关问题