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相关