【发布时间】:2013-01-21 18:07:00
【问题描述】:
按照以下代码:
char Secgrp = 0;
try{
String a = (String) comboName.getSelectedItem();
String fill = "Select recDate, attendant, grp from log order by id DESC";
ps = conn.prepareStatement(fill);
rs = ps.executeQuery();
String x = cDate();
while (rs.next()){
java.sql.Date dDate = rs.getDate("recDate");
String bName = rs.getString("attendant");
char[] cbuf = new char[1];
rs.getCharacterStream("grp").read(cbuf);
char theValue = cbuf[0];
String grp = Character.toString(theValue);
if(x.equals(dDate.toString()) && group1 == theValue && a.equals(bName)){
Secgrp = theValue++ ;
}
else if(x.equals(dDate.toString()) && theValue > group1 && a.equals(bName))
{ Secgrp = theValue++;
}
else if(x.equals(dDate.toString()) && group1 > theValue && a.equals(bName))
{ Secgrp = group1;
}
根据上述代码,我正在尝试检查 char 是否等于我的结果集记录。例如如果 A 等于 A,如果 date = date 和 name = name 则做某事。
但是当我 setText(String.valueOf(Secgrp)) 时,没有插入任何字符。
请告知我如何从结果集中检索字符,例如“A”。
【问题讨论】:
-
我在您的 SELECT 语句中没有看到
diveGrp。你确定你输入的查询正确吗?数据库中的数据类型是什么? -
它是 db 中的 char 数据类型。
-
好的,我现在看到您对代码所做的更改。我认为您的问题不在于 char 字段,而在于您的日期比较。鉴于您无法真正控制
date.toString()的格式化方式,因此您确实可以对实际日期对象进行比较。 -
我对我的代码进行了测试。如果 date 等于 date,grp 等于 grp 并且 name 等于 name 然后 setText "Z"。有效。我想它的字符增量。有什么想法吗?
-
您可能希望包含使用
Secgrp变量设置小部件文本的代码。另外,您是否在设置之前记录其值?