OleDbCommand cmd = new OleDbCommand(sqlstring,cn);
string sqlstring = "select top 10 a.所在项目,b.* from 工资2005年10月 as b JOIN 密码表 as a ON a.工号=b.工号 WHERE ('aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcccdcecfcgchcicjckclcmcncocpcqct' LIKE '%'+a.固定身份码+'%') OR ('aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxaybbbcbdbebfbgbhbibjbkblbmbnbobp' LIKE '%'+a.项目身份码+'%') and ('大唐' LIKE '%'+a.所在项目+'%') ";OleDbDataReader dr;
dr=cmd.ExecuteReader();
TableHeader = "<div class='gridBody'>";
while(dr.Read())
{
TableHeader += "<div  class='gridRow'  id='row"+RowNumber.ToString()+"'>";
for(int i=0;i<FieldNumber;i++)
{
TableHeader +="<span>"+dr.GetValue(i).ToString()+"</span>";
}
TableHeader += "</div>";
RowNumber++;
}
TableHeader += "</div>";

解决方案 »

  1.   

    好古怪的sql语句啊,不太看得懂
    你可以试试看改变我搜索条件的次序看看会不会快一点。
      

  2.   

    我是用了ultragridhttp://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12里面的代码,sql语句执行的时间不长,就是
    while(dr.Read())
    {
    TableHeader += "<div  class='gridRow'  id='row"+RowNumber.ToString()+"'>";
    for(int i=0;i<FieldNumber;i++)
    {
    TableHeader +="<span>"+dr.GetValue(i).ToString()+"</span>";
    }
    TableHeader += "</div>";
    RowNumber++;
    }
    运行太久了
      

  3.   

    根本原因是你使用了字符串的连接。将TableHeader定义为System.Text.StringBuilder类型,然后使用这样的语句TableHeader.Append("<div  class='gridRow' id='row"+RowNumber.ToString()+"'>");就可以了。
      

  4.   

    我改成TableHeader.Append方式了,可是当数据超过1000条的时候就出来的非常慢了http://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12
    这个例子有没有谁有改进版啊
      

  5.   

    a.固定身份码 LIKE '%%'
      

  6.   

    sql语句不影响我所要的速度,我是使用了这个http://dotnet.aspx.cc/ShowDetail.aspx?id=00C78024-5C08-4F3F-BCA8-AB3C0B330A12例子里面的代码,超过100条记录就很慢了,不知道有什么好的办法?
      

  7.   


    sub sortTable(iCol, currentSort)if (currentSort = "UP") then
    jsSort iCol,true
    else
    jsSort iCol,false
    end ifend sub<script language ="Jscript">var IsAsc ;function jsSort(iColIndex,abAsc)

    var iSortCount ;
    IsAsc = abAsc ;
    var SortItem = new Array();
    var start0=new Date();
    iSortCount = gridBody.children.length;
    var i ;
    if (iColIndex != 12)
    {
    for (i = 0 ;i<iSortCount;i++)
    {
    SortItem.push(new Array(gridBody.children[i].children[iColIndex].innerText.toLowerCase(),gridBody.children[i]))  ;
    }
    }
    else
    {
    for (i = 0 ;i<iSortCount ;i++)
    {
    var info =gridBody.children[i].children[iColIndex].innerText ;
    SortItem.push(new Array(Date.parse(info),gridBody.children[i]))  ; 

    }SortItem.sort(sortFunc) ;for (i = 0 ;i<iSortCount ;i++)
    {
    gridBody.insertBefore(SortItem[i][1]) ; 
    }SortItem = null ;

    function sortFunc(x,y)
    {
    if (IsAsc)
    {
    if(x[0]>y[0]) return 1;
    else if(x[0]<y[0]) return -1;
    else return 0;
    }
    else
    {
    if(x[0]>y[0]) return -1;
    else if(x[0]<y[0]) return 1;
    else return 0; 
    }

    </script>以上这段代码要改成vbscript要怎么改啊
      

  8.   

    问题就在
    while(dr.Read())
    {
    TableHeader += "<div  class='gridRow'  id='row"+RowNumber.ToString()+"'>";
    for(int i=0;i<FieldNumber;i++)
    {
    TableHeader +="<span>"+dr.GetValue(i).ToString()+"</span>";
    }
    TableHeader += "</div>";
    RowNumber++;
    }用TableHeader +=拼接字符速度是很慢的,原理可以查网络。
    改成用StringBuilder进行拼接字符。