问题:在数据库中检索到有相同的数据。我想在BL中做一个循环。遇到相同的数据只取一条。
 我的方法如下:
//////////////////////////////////////////////////////////////////////////////
     if( xvwdt001gb.length == 0 ) {
     return true;
     }
     //生成
     String tmp = xvwdt001gb[0].getApply_receipt_d() + xvwdt001gb[0].getReceipt_no() + xvwdt001gb[0].getMember_no() + xvwdt001gb[0].getName_kanji() + xvwdt001gb[0].getChair_n();
     oData.add(xvwdt001gb[0]);
    
     for( int i=1; i<xvwdt001gb.length; i++ ) {
     String key = xvwdt001gb[i].getApply_receipt_d() + xvwdt001gb[i].getReceipt_no() + xvwdt001gb[i].getMember_no() + xvwdt001gb[i].getName_kanji() + xvwdt001gb[i].getChair_n();     if (tmp.equals(key)){
     continue;
     }else{
     oData.add(xvwdt001gb[i]);
     tmp = key;
     }
     }////////////////////////////////////////////[color=#FF0000](该方法是好用的,假如在数据库中检索出来10条数据,经过他筛选之后剩下3条)
请问:为什么我的页面中的检索结果计数中仍然显示 10条???[/
color]在线等候一起讨论!

解决方案 »

  1.   

    有二种方式可以处理这个问题:
    一是从数据库本身出发,有相同的用SQL语句进行处理.
    二是得出要的全部记录,用程序来控制相同记录
    前一种比较好.
      

  2.   

    我这里有规定,所以第一种不可以。
    能说说第二种吗?你有什么想法?
    我现在走的就是这路子。
    我在JS里做的页面分页CHICK。
    //////////////////////////////////
    function onClick_Search(rowNo, SortTerm) {
        // SEARCH処理
        if (VT_checkAllData("Search") == false) {
            return false;
          }
        var url = "VTFT111.po?V_ope_type=Search";
        if (rowNo != null) {
            url = url + "&Start_record=" + rowNo;
            var SearchParam = VT_getField('Search_param');        
            if (SearchParam != null && SearchParam.value != "") {
                url = url + "&" + SearchParam.value;
            }
            if (SortTerm != null && SortTerm != "") {
                buildOrderBy("Order_by", SortTerm);        
            }
            
        }
        VT_getForm().action = url;
        VT_getForm().method = "POST";
        VT_getForm().submit();
    }/////////////////////////////////////////////////////就出现了上面的问题。很挠头阿