当前位置:编程学习 > JAVA >>

JavaSwing与数据库问题求大神解答啊 急 急 急 急

/**
*java 修改界面
/
package com.hs.change;


import java.awt.*;
import java.awt.event.*;
import java.io.File;

import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import com.hs.Mytools.MyTools;
import com.hs.model.MemberModel;


public class MemberChange extends JDialog implements ActionListener{

    JLabel jb1_ID,jb2_Name,jb3_Sex,jb4_Birthday,jb5_Addr,jb6_Postcode,jb7_Phone,jb8_Mobile,
    jb9_Email,jb10_Remark,jb11_PayType,jb12_Advisor,jp13_JiaoLian,jp14_Pay,jp15_JoinTime,
    jp16_Picture,jp17_State,jp18_CardType;
JTextField jt1,jt2,jt3,jt4,jt5,jt6,jt7,jt8,jt9,jt10,jt11,jt12,jt13;
JButton add,up,pic;
JComboBox type,sex,pay,state;
MemberModel mm;
String strimage = null;
String [] selectrow;

public void initallPanel(){
Container ct = this.getContentPane();
this.setLayout(null);
jb1_ID = new JLabel("卡号");
jb1_ID.setFont(MyTools.f1);
jb1_ID.setBounds(10,20,200,20);
ct.add(jb1_ID);

jt1 = new JTextField();
jt1.setBounds(70,20,150,25);
ct.add(jt1);

jb2_Name = new JLabel("姓名");
jb2_Name.setFont(MyTools.f1);
jb2_Name.setBounds(10,80,200,20);
ct.add(jb2_Name);

jt2 = new JTextField();
jt2.setBounds(70,80,150,25);
ct.add(jt2);

jb3_Sex = new JLabel("性别");
jb3_Sex.setFont(MyTools.f1);
jb3_Sex.setBounds(10,140,200,20);
ct.add(jb3_Sex);

String[] s = {"男","女"};
sex = new JComboBox(s);
sex.setBounds(70,140,100,25);
ct.add(sex);

jb4_Birthday = new JLabel("生日");
jb4_Birthday.setFont(MyTools.f1);
jb4_Birthday.setBounds(10,200,200,20);
ct.add(jb4_Birthday);

jt3 = new JTextField();
jt3.setBounds(70,200,150,25);
ct.add(jt3);

jb5_Addr = new JLabel("地址");
jb5_Addr.setFont(MyTools.f1);
jb5_Addr.setBounds(10,260,200,20);
ct.add(jb5_Addr);

jt4 = new JTextField();
jt4.setBounds(70,260,150,25);
ct.add(jt4);


jb6_Postcode = new JLabel("邮编");
jb6_Postcode.setFont(MyTools.f1);
jb6_Postcode.setBounds(10,320,200,20);
ct.add(jb6_Postcode);

jt5 = new JTextField();
jt5.setBounds(70,320,150,25);
ct.add(jt5);


jb7_Phone = new JLabel("电话");
jb7_Phone.setFont(MyTools.f1);
jb7_Phone.setBounds(10,380,200,20);
ct.add(jb7_Phone);

jt6 = new JTextField();
jt6.setBounds(70,380,150,25);
ct.add(jt6);

jb8_Mobile = new JLabel("手机");
jb8_Mobile.setFont(MyTools.f1);
jb8_Mobile.setBounds(10,440,200,20);
ct.add(jb8_Mobile);

jt7 = new JTextField();
jt7.setBounds(70,440,150,25);
ct.add(jt7);

    jb9_Email = new JLabel("邮箱");
    jb9_Email .setFont(MyTools.f1);
    jb9_Email .setBounds(260,380,200,20);
ct.add(jb9_Email );

jt8 = new JTextField();
jt8.setBounds(330,380,150,25);
ct.add(jt8);

    jb10_Remark = new JLabel("备注");
    jb10_Remark .setFont(MyTools.f1);
    jb10_Remark.setBounds(10,620,200,25);
ct.add(jb10_Remark );

jt9 = new JTextField();
jt9 = new JTextField();
jt9.setBounds(70,620,400,25);
ct.add(jt9);
    
    jb12_Advisor = new JLabel("顾问");
    jb12_Advisor.setFont(MyTools.f1);
    jb12_Advisor.setBounds(260,320,200,20);
ct.add(jb12_Advisor);

jt10 = new JTextField();
jt10.setBounds(330,320,150,25);
ct.add(jt10);

    jp13_JiaoLian = new JLabel("教练");
    jp13_JiaoLian.setFont(MyTools.f1);
    jp13_JiaoLian.setBounds(260,260,200,20);
ct.add(jp13_JiaoLian);

jt11 = new JTextField();
jt11.setBounds(330,260,150,25);
ct.add(jt11);

    jp14_Pay = new JLabel("金额");
    jp14_Pay .setFont(MyTools.f1);
    jp14_Pay .setBounds(10,560,200,25);
ct.add(jp14_Pay );

jt12 = new JTextField();
jt12.setBounds(70,560,150,25);
ct.add(jt12);


    
    jp15_JoinTime = new JLabel("入会时间");
    jp15_JoinTime.setFont(MyTools.f1);
    jp15_JoinTime.setBounds(260,440,200,20);
ct.add(jp15_JoinTime);

jt13 = new JTextField();
jt13.setBounds(330,440,150,25);
ct.add(jt13);

jb11_PayType = new JLabel("支付方式");
    jb11_PayType.setFont(MyTools.f1);
        jb11_PayType.setBounds(260,560,200,20);
ct.add(jb11_PayType);

String []p={"","现金","刷卡"};
pay = new JComboBox(p);
pay.setBounds(330,560,150,25);
ct.add(pay);

ImageIcon ii;
if(selectrow[15] != null){
ii = new ImageIcon(".settings/strimage/"+selectrow[15]);
} else{
ii = new ImageIcon(".settings/strimage/mmdefault.jpg");
}
ii.setImage(ii.getImage().getScaledInstance(256, 
256, Image.SCALE_DEFAULT));
    jp16_Picture = new JLabel(ii);
    jp16_Picture.setFont(MyTools.f1);
    jp16_Picture.setBounds(300,20,150,160);
    jp16_Picture.setBorder(BorderFactory.createLoweredBevelBorder());
ct.add(jp16_Picture);

pic = new JButton("更新照片");
pic.addActionListener(this);
pic.setBounds(300,200,150,25);
ct.add(pic);
    

    jp17_State = new JLabel("状态");
    jp17_State.setFont(MyTools.f1);
jp17_State.setBounds(10,500,200,25);
ct.add(jp17_State);

String []e = {"","正常","补卡","续卡","欠费","挂失"};
state = new JComboBox(e);
state.setBounds(70,500,150,25);
ct.add(state);

    jp18_CardType = new JLabel("会卡类型");
    jp18_CardType.setFont(MyTools.f1);
jp18_CardType.setBounds(260,500,200,20);
ct.add(jp18_CardType);

String[]t = {"","年卡","季卡","月卡"};
type = new JComboBox(t);
type.setBounds(330, 500, 150, 25);
ct.add(type);
    
add = new JButton("修改");
add.addActionListener(this);
add.setBounds(60,670,150,25);
ct.add(add);

up = new JButton("取消");
up.addActionListener(this);
up.setBounds(300, 670, 150, 25);
ct.add(up);

jt1.setText(selectrow[0]);
jt2.setText(selectrow[1]);
sex.setSelectedItem(selectrow[2]);
jt3.setText(selectrow[3]);
jt4.setText(selectrow[4]);
jt5.setText(selectrow[5]);
jt6.setText(selectrow[6]);
jt7.setText(selectrow[7]);
jt8.setText(selectrow[8]);
jt9.setText(selectrow[9]);
pay.setSelectedItem(selectrow[10]);
jt10.setText(selectrow[11]);
jt11.setText(selectrow[12]);
jt12.setText(selectrow[13]);
jt13.setText(selectrow[14]);
jp16_Picture.setText(strimage);
state.setSelectedItem(selectrow[16]);
type.setSelectedItem(selectrow[17]);

}
public MemberChange(Frame owner,String title,boolean modal,String[] paras){
super(owner,title,modal);
this.setLayout(new BorderLayout());
//从数据库中查询出详细信息,用于显示到面板上面
MemberModel mm = new MemberModel();
mm.queryAllOfId(paras);
selectrow = new String [mm.getColumnCount()];
for(int i=0;i<mm.getColumnCount();i++){
selectrow[i] = (String) mm.getValueAt(0, i);
}

this.initallPanel();
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setTitle("会员修改");
this.setLocation(width/2-250,height/2-330);
this.setSize(500,730);
this.setVisible(true);
this.setResizable(false);
    
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(this.add==e.getSource()){
    mm = new MemberModel(); 
    String []paras = {jt1.getText().trim(),jt2.getText().trim(),sex.getSelectedItem().toString(),
     jt3.getText().trim(),jt4.getText().trim(),jt5.getText().trim(),
     jt6.getText().trim(),jt7.getText().trim(),jt8.getText().trim(),
     jt9.getText().trim(),pay.getSelectedItem().toString(),jt10.getText().trim(),jt11.getText().trim(),jt12.getText().trim(),
     jt13.getText().trim(),strimage,state.getSelectedItem().toString(),
     type.getSelectedItem().toString()};
   
boolean b = mm.updateById(paras);
    if(b){
JOptionPane.showMessageDialog(this, "修改成功");
this.dispose();
} else{
JOptionPane.showMessageDialog(this, "修改失败",null,JOptionPane.ERROR_MESSAGE);

return;
}
}else if(this.up==e.getSource()){
this.dispose();
}else if(this.pic == e.getSource()){
//添加照片的路径并且在JLabel上显示出来
//思路,先弹出一个对话框,然后记录下用户的选择,将照片拷贝至某个固定目录,当需要时,从该目录读出
    JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "BMP & JPG & GIF Images", "bmp","jpg", "gif");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(this);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
            File f = chooser.getSelectedFile();
            mm = new MemberModel();
            jp16_Picture.setIcon(mm.getScaledImage(f, jp16_Picture));
            strimage = f.getName();
    }

}

}
/**
*数据Model层
*/

}
//修改
public boolean updateById(String [] paras){
boolean b=true;
sh = new SqlHelper();
sql = "update tb_Member set Name = ?,Sex = ?,Birthday = ?," +
"Addr = ?,Postcode = ?,Phone = ?,Mobile = ?,Email = ?," +
"Remark = ?,PayType = ?,Advisor = ?,JiaoLian = ?," +
"Pay = ?,JoinTime = ?,Picture = ?,State = ?,CardType = ? where MemberID = ? ";
try{
b = sh.exeUpdate(sql, paras);
}catch (Exception e){
e.printStackTrace();
}finally{
sh.close();
}
return b;
}
/**
*
*主界面
/else if(this.jp4_jb2==e.getSource()){
int rowNum = this.jtb.getSelectedRow();
if(rowNum==-1){
JOptionPane.showMessageDialog(this,"请选择修改的会员");
return;
}
String [] paras = new String []{(String) mm.getValueAt(jtb.getSelectedRow(), 0)};
new MemberChange(null,"修改人事信息",true,paras);
mm = new MemberModel();
mm.queryFour();
jtb.setModel(mm);
出现的错误
 [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在将 nvarchar 值 '年卡' 转换成数据类型 int 时失败。


数据库 String
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,