【问题标题】:Java Swing - getting char from ResultSetJava Swing - 从结果集中获取字符
【发布时间】: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 变量设置小部件文本的代码。另外,您是否在设置之前记录其值?

标签: java swing resultset


【解决方案1】:

解决方案:在每个块之后添加中断

       if(x.equals(dDate.toString()) && group1 == theValue && a.equals(bName)){
           Secgrp = theValue++ ;
         Break;
        } 
      else if(x.equals(dDate.toString()) && theValue > group1 && a.equals(bName))  
        { Secgrp = theValue++;
        Break;
        }
        else if(x.equals(dDate.toString()) && group1 > theValue && a.equals(bName))           
       { Secgrp = group1;
         Break;
        }

【讨论】:

  • 什么是Break?会有什么帮助?
  • 我以前的代码无法正常工作的原因。即使执行了一个 blocm,它也会从第一条记录到最后一条记录扫描我的 rs。所以我在休息时补充道;当 ERS ​​扫描记录并执行块时,它将停止。
  • 啊,你的意思是breakBreak 看起来像一个类名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2011-07-18
  • 2021-03-26
  • 2011-03-04
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多