62,614
社区成员
发帖
与我相关
我的任务
分享
public void tianjiaXS() {// 添加学生信息
xueshengInfo = new String[8];//学生信息放在数组了
for (int i = 0; i < xueSheng.length; i++) {
//输入的是学生的班级名称,但是存储的时候存的是班级的编号,
//这样就要根据班级名称从班级表里得到相应的班级编号,再将班级编号插入学生表里
//xueshengInfo[2]为班级名称的值,测试结果为null(班级名称是存在的,用下拉框之前是没问题)
//comboBox.getSelectedItem(),从下拉框里得到班级名称,正常,为班级名称
if (i == 2) {
try {
xueshengInfo[2] = (dbo
.selectInfo("select * from banji where banjiming='"
+ comboBox.getSelectedItem() + "'"))
.getString(1);
} catch (SQLException e) {
e.printStackTrace();
}
} else {
xueshengInfo[i] = (xueSheng[i].getText()).trim();
}
}
System.out.println(comboBox.getSelectedItem());//测试comboBox.getSelectedItem(),正常,为班级名称
System.out.println(xueshengInfo[2]);//测xueshengInfo[2]的值,为null(班级名称是存在的)
tjxsxxSQL = "insert into xuesheng(xsbianhao,xsxinming,banjihao,xsxinbie,xsnianling,xsjiatingzhuzhi,xsruxueshijian,xsruxuechengji) values('"
+ xueshengInfo[0]
+ "','"
+ xueshengInfo[1]
+ "','"
+ xueshengInfo[2]
+ "','"
+ xueshengInfo[3]
+ "','"
+ xueshengInfo[4]
+ "','"
+ xueshengInfo[5]
+ "','"
+ xueshengInfo[6] + "','" + xueshengInfo[7] + "')";
dbo.updateInfo(tjxsxxSQL);// 执行添加SQL语句
}
String sql = "select banjihao from banji where banjiming='" + banjiming + "'";
System.out.println(sql); //结果为 select banjihao from banji where banjiming='历史07-1'
将select banjihao from banji where banjiming='历史07-1'
复制,粘帖到查询分析器里
得到要查询的班级号(正常)
另外:
System.out.println(xueshengInfo[2]);
结果为:null
String banjiming = (String) comboBox.getSelectedItem();
System.out.println(banjiming);
String sql = "select banjihao from banji where banjiming='" + banjiming + "'";
System.out.println(sql);
try {
xueshengInfo[2] = (dbo.selectInfo(sql)).getString(1);
} catch (SQLException e) {
e.printStackTrace();
}
Object getSelectedItem()
返回当前所选项。
public void print(Object obj) {
write(String.valueOf(obj));
}
你看下是不是这个原因.
sql中的getSelectedItem()加上toString()试试.
感谢关心我问题的所有人,这个问题已经被我解决了,呵呵
问题就出在下面这句:
xueshengInfo[2] = (dbo
.selectInfo("select * from banji where banjiming='"
+ comboBox.getSelectedItem() + "'"))
.getString(1);
因为查询完数据库之后,数据库游标(ResultSet)是指向第一行之前的,就是说不是指向第一行的,
所以得到的值为null,
游标向下移动一行再取值就对了
即ResultSet rs;
if(rs.next){
xueshengInfo[2]=rs.getString(1);
}