程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> sql2005-eclipse對數據庫sql server2005的增刪改查

sql2005-eclipse對數據庫sql server2005的增刪改查

編輯:編程綜合問答
eclipse對數據庫sql server2005的增刪改查

package Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.awt.*;

import javax.swing.*;
public class data extends JFrame implements ActionListener{
//private static final String DriveManager = null;
JButton add,select,del,update;
JTable table;
//JComboBox fieldsbox,valuebox;
Object body[][]=new Object[50][5];
String fields[]={"sno","sname","sex","age","dept"};
Connection conn;
Statement st;
ResultSet rs;
JTabbedPane tp;

public data(){
    super("數據庫操作");
    this.setSize(400,300);
    this.setLocation(300, 200);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel ps=new JPanel();
    add=new JButton("添加");
    select=new JButton("顯示");
    update=new JButton("更改");
    del=new JButton("刪除");
    //fieldsbox=new JComboBox(fields);
    //valuebox=new JComboBox();
    //fieldsbox.addActionListener(this);
    add.addActionListener(this);
    select.addActionListener(this);
    update.addActionListener(this);
    del.addActionListener(this);
    //ps.add(fieldsbox);
    //ps.add(valuebox);
    ps.add(add);
    ps.add(select);
    ps.add(update);
    ps.add(del);
    table=new JTable(body,fields);
    tp=new JTabbedPane();
    tp.add("s表", new JScrollPane(table));
    this.getContentPane().add(tp, "Center");
    this.getContentPane().add(ps,"South");
    this.setVisible(true);
    this.connection();
}

public void connection(){
    try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive");
        String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSGL";
        //Connection conn=null;
        conn=DriverManager.getConnection(url, "sa", "123456");
        st= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

    }
    catch(Exception ex){
        System.out.print("連接錯誤!");
    }
                   }
public static void main(String[] args)
{data data=new data();}

public void actionPerformed(ActionEvent e){
    //if(e.getSource()==fieldsbox){
        //fieldselect();
    //}
    //if(e.getSource()==valuebox){
        //valueselect();
    //}
    if(e.getSource()==add){
        add();
    }
    if(e.getSource()==select){
      select();
    }
    if(e.getSource()==update){
        update();
    }
    if(e.getSource()==del){
        del();
    }
    }

/*private void select() {
    // TODO 自動生成的方法存根

}

private void add() {
    // TODO 自動生成的方法存根

}*/

/*public void fieldselect(){
    valuebox.removeActionListener(this);
    valuebox.removeAllItems();
    String condition=(String)fieldsbox.getSelectedItem();
    String str="select distinct"+condition+"from s";
    try{
        ResultSet rs=st.executeQuery(str);
        while(rs.next());{
        valuebox.addItem((String)rs.getString(1));
     }
    valuebox.addActionListener(this);
    }catch(Exception e3){
        e3.printStackTrace();}
    }

public void valueselect(){
String val=(String)valuebox.getSelectedItem();
String str="select * from s where"+fieldsbox.getSelectedItem()+"='"+val+"'";
filltable(str);
}*/
public void del(){
try{
int row=table.getSelectedRow();
String str="delete s where SNO='"+body[row][0]+"'";
st.executeUpdate(str);
JOptionPane.showMessageDialog(null, "數據已成功刪除");
this.select();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"刪除數據錯誤!");
}
}

     public void update(){
         try{
             int row=table.getSelectedRow();
             JTextField t[]=new JTextField[8];
             t[0]=new JTextField("輸入姓名:");
             t[0].setEditable(false);
             t[1]=new JTextField();
             t[1].setText((String)body[row][1]);
             t[2]=new JTextField("輸入性別:");
             t[2].setEditable(false);
             t[3]=new JTextField();
             t[3].setText((String)body[row][2]);
             t[4]=new JTextField("輸入年齡:");
             t[4].setEditable(false);
             t[5]=new JTextField();
             t[5].setText((String)body[row][3]);
             t[6]=new JTextField("輸入專業:");
             t[6].setEditable(false);
             t[7]=new JTextField();
             t[7].setText((String)body[row][4]);
             String but[]={"確定","取消"};
             int go=JOptionPane.showOptionDialog(null, t,"修改信息",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null,but,but[0]);
             if(go==0){

                     String nName=(String)t[1].getText();
                     String nsex=(String)t[3].getText();
                     int nage=Integer.parseInt(t[5].getText());
                     String ndept=(String)t[7].getText();
                     String str="update s set sname='"+nName+"',sex='"+nsex+"',age='"+nage+"',dept='"+ndept+"'where sno='"+body[row][0]+"'";
                     st.executeUpdate(str);
                     JOptionPane.showMessageDialog(null, "修改數據成功!");
                     this.select();
                 }
                    /* String str="insert into S values('"+nsno+"','"+nName+"','"+nsex+nsex+"','"+nage+"','"+ndept+"')";
                     st.executeUpdate(str);
                     JOptionPane.showMessageDialog(null, "數據已成功插入!");
                 }catch(Exception ee){
                     JOptionPane.showInternalMessageDialog(null, "插入數據錯誤!");
                 }
             }*/
         }catch(Exception ex){
             ex.printStackTrace();
             JOptionPane.showMessageDialog(null, "更新數據失敗!");

         }
     }
         public void select(){
             String str=("select * from S ");

             filltable(str);
         }

         public void add(){
             try{
                 JTextField t[]=new JTextField[10];
                 t[0]=new JTextField("輸入學號:");
                 t[0].setEditable(false);
                 t[1]=new JTextField();
                 t[2]=new JTextField("輸入姓名:");
                 t[2].setEditable(false);
                 t[3]=new JTextField();
                 t[4]=new JTextField("輸入性別:");
                 t[4].setEditable(false);
                 t[5]=new JTextField();
                 t[6]=new JTextField("輸入年齡:");
                 t[6].setEditable(false);
                 t[7]=new JTextField();
                 t[8]=new JTextField("輸入專業:");
                 t[8].setEditable(false);
                 t[9]=new JTextField();
                 String but[]={"確定","取消"};
                 int go=JOptionPane.showOptionDialog(null, t,"插入信息",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null,but,but[0]); 
                 if(go==0){
                     try{

                         String nsno=(String)t[1].getText();
                         String nName=(String)t[3].getText();
                         int nsex=Integer.parseInt(t[5].getText());
                         int nage=Integer.parseInt(t[7].getText());
                         String ndept=(String)t[9].getText();
                         String str="insert into s values('"+nsno+"','"+nName+"','"+nsex+nsex+"','"+nage+"','"+ndept+"')";
                         st.executeUpdate(str);
                         JOptionPane.showMessageDialog(null, "數據已成功插入!");
                     }catch(Exception ee){
                         JOptionPane.showInternalMessageDialog(null, "插入數據錯誤!");
                     }
                 }
             }catch(Exception ex){}
         }


      public void filltable(String s){
          try{
              for(int x=0;x<body.length;x++){
                  body[x][0]=null;
                  body[x][1]=null;
                  body[x][2]=null;
                  body[x][3]=null;
                  body[x][4]=null;
              }
              int i=0;
              rs=st.executeQuery(s);
              while(rs.next()){
                  body[i][0]=rs.getString("SNO");
                  body[i][1]=rs.getString("SNAME");
                  body[i][2]=rs.getString("SEX");
                  body[i][3]=rs.getString("AGE");
                  body[i][4]=rs.getString("DEPT");
                  i=i+1;
              }
              this.repaint();

          }catch(SQLException ex){
              ex.printStackTrace();}
          }
      }

最佳回答:


應該是更新數據時,某一個參數空值了,你調試,看一下哪個是空值就行了

z13298309738
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved