2010-09-07 133 views
1

我是Riya a B.Tech。学生,我必须在主题大学管理系统上做一个corejava项目。我已经使用MS Access创建了所需的数据库。我在我附上的代码中遇到问题。实际上我想更新数据库中的数据,所以我在其中一个中创建了2个框架。被问到什么时候输入,然后第二帧打开,并要求输入标记更新...当我输入要更新的标记时,对话框打开“标记更新成功”。直到这里我没有任何问题..问题是当我打开数据库时,我看到实际上标记没有更新那里。所以请请有人帮我解决这个问题。corejava需要项目帮助

的代码如下:

1帧

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 

class MyFrame03 extends JFrame implements ActionListener { 
    JLabel l1; 
    JTextField t1; 
    JPanel p1, p2; 
    JButton b1; 
    Connection con; 
    PreparedStatement pst; 
    String s1; 

    MyFrame03() { 
     setLayout(new GridLayout(4, 1)); 
     setTitle("Enter Data Required"); 
     setBackground(Color.blue); 
     l1 = new JLabel("Roll no"); 
     t1 = new JTextField(12); 
     p1 = new JPanel(); 
     p2 = new JPanel(); 
     b1 = new JButton("SUBMIT"); 
     p1.add(l1); 
     p1.add(t1); 
     p2.add(b1); 
     add(p1, "Center"); 
     add(p2, "South"); 
     b1.addActionListener(this); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(400, 500); 
     setVisible(true); 
     try { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      con = DriverManager.getConnection("Jdbc:Odbc:dsn3"); 
      if (con != null) 
       System.out.println("Connection Established"); 
     } 
     catch (Exception e) { 
      System.out.println("exception"); 
     } 
    } 

    public void actionPerformed(ActionEvent e1) { 
     if (e1.getSource() == b1) { 
      s1 = t1.getText(); 
      try { 
       pst = con.prepareStatement("insert into stud values(?)"); 
       pst.setString(1, s1); 
       pst.executeUpdate(); 
       con.commit(); 
       con.close(); 
      } 
      catch (SQLException e) { 
       System.out.println("except1"); 
      } 
      MyFrame04 m1 = new MyFrame04(s1); 
      dispose(); 
     } 
    } 

    public static void main(String s[]) throws SQLException { 
     MyFrame03 m1 = new MyFrame03(); 
    } 
} 

2帧

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 

class MyFrame04 extends JFrame implements ActionListener { 
    JLabel l1; 
    JTextField t1; 
    JPanel p1, p2; 
    JButton b1; 
    String s1, s2; 
    Connection con; 
    PreparedStatement pst; 

    public MyFrame04(String s1) { 
     this.s1 = s1; 
     setLayout(new GridLayout(4, 1)); 
     setTitle("Update Marks"); 
     setBackground(Color.blue); 
     l1 = new JLabel("Enter Marks"); 
     t1 = new JTextField(12); 
     b1 = new JButton("SUBMIT"); 
     p1 = new JPanel(); 
     p2 = new JPanel(); 
     p1.add(l1); 
     p1.add(t1); 
     p2.add(b1); 
     add(p1, "Center"); 
     add(p2, "South"); 
     b1.addActionListener(this); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(400, 500); 
     setVisible(true); 
     try { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      con = DriverManager.getConnection("Jdbc:Odbc:dsn3"); 
      if (con != null) 
       System.out.println("Connection Established"); 
     } 
     catch (Exception e) { 
      System.out.println("exception"); 
     } 
    } 

    public void actionPerformed(ActionEvent e1) { 
     if (e1.getSource() == b1) { 
      s2 = t1.getText(); 
      try { 
       pst = con.prepareStatement("UPDATE stud set Marks=? WHERE Roll no=?"); 
       pst.setString(1, s2); 
       pst.setString(2, s1); 
       pst.executeUpdate(); 
       con.commit(); 
       con.close(); 
      } 
      catch (SQLException e) { 
       System.out.println("except1"); 
      } 
      JOptionPane.showMessageDialog(this, "Marks updated succesfully"); 
      dispose(); 
     } 
    } 
} 

三江源

+0

我会尽力回顾一下,但如果你能总结或简化问题,它确实能帮助我们所有人。很难确切地说出你在问什么。 – 2010-09-07 14:17:39

+1

如果这是一个班级作业,您应该添加作业标签。 – trashgod 2010-09-07 14:41:41

+0

好吧我会添加标签,但请帮我解决这个问题。我的问题是,请检查2帧的编码,如果有什么问题,请告诉我ñ帮助我。 – user677814 2010-09-07 15:08:01

回答

2

您的数据库访问代码工作的智慧摇摆?最简单的方法,看看这会是这样的:

class HelloDatabase { 
    public static void main(String[] args) { 
    try { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection con = DriverManager.getConnection("Jdbc:Odbc:dsn3"); 
     if (con != null) { 
      int marks = 1, roll = 1; // or whatever (your data here) 
      System.out.println("Connection Established"); 
      PreparedStatement pst = con.prepareStatement("UPDATE stud SET marks=? WHERE roll_num=?"); 
      pst.setString(1, marks); 
      pst.setString(2, roll); 
      pst.executeUpdate(); 
      con.commit(); 
      con.close(); 
     } 
    } 
    catch (Exception e) { 
     System.out.println("exception"); 
    }  
    } 
} 

如果得到一个手柄和访问数据库得当,你很幸运。

顺便说一句 - ,这实际上可能是您的问题 - 我注意到,从原来的职位您的SQL查询了它的不确定性:

UPDATE stud set Marks=? WHERE Roll no=? 

“滚不”不会得到据我所知,这是一个有效的SQL字段 - 它们应该是一个单词(如'roll','roll_num'或者'RollNum'),但我不认为像'Roll no' )

+0

thanx joe为你的帮助...它帮助我...问题是辊之间的空间和没有...我改变它滚动然后它的工作 – user677814 2010-09-08 16:37:39

+0

np :)你总是想写最小的测试可能展出您关心的问题。 – 2010-09-08 20:21:07

+0

最近怎么样? – 2010-09-09 14:45:56