首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

小弟我试了下用ADODC打开才200行的记录 并处理了一下数据再显示.很慢啊

2013-03-26 
我试了下用ADODC打开才200行的记录 并处理了一下数据再显示.很慢啊.sqlstr select * from report where

我试了下用ADODC打开才200行的记录 并处理了一下数据再显示.很慢啊.
sqlstr = "select * from report where( bjdno like '%" & Text1.Text & "%'or bjdname like '%" & Text1.Text & "%' ) and lx like '%" & Combo1.Text & "%' order by bjdno "
'模糊查找
MSFlexGrid1.Clear
MSFlexGrid1.Rows = 1

MSFlexGrid1.TextMatrix(0, 0) = "客户编号"
MSFlexGrid1.TextMatrix(0, 1) = "客户名称"
MSFlexGrid1.TextMatrix(0, 2) = "联系人"
MSFlexGrid1.TextMatrix(0, 3) = "地址"
MSFlexGrid1.TextMatrix(0, 4) = "电话"
MSFlexGrid1.TextMatrix(0, 5) = "传真"
MSFlexGrid1.TextMatrix(0, 7) = "财务联系人"
MSFlexGrid1.TextMatrix(0, 8) = "财务电话"


MSFlexGrid1.ColAlignment(1) = 1
MSFlexGrid1.ColAlignment(6) = 0


Adodc1.RecordSource = sqlstr
Adodc1.Refresh
    
    

mslfexgrid1.Redraw = False
Do While Not Adodc1.Recordset.EOF
'DataGrid1.Columns(3).Text = "BBAA"
        
    MSFlexGrid1.AddItem ""

    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = CStr(Adodc1.Recordset("bjdno"))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = CStr(Adodc1.Recordset("bjdname"))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = Trim(CStr(IIf(IsNull(Adodc1.Recordset("lxman")), "", Adodc1.Recordset("lxman"))))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = Trim(CStr(IIf(IsNull(Adodc1.Recordset("lx")), "", Adodc1.Recordset("lx"))))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = Trim(CStr(IIf(IsNull(Adodc1.Recordset("lxtel")), "", Adodc1.Recordset("lxtel"))))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = Trim(CStr(IIf(IsNull(Adodc1.Recordset("lxfax")), "", Adodc1.Recordset("lxfax"))))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = IIf(IsNull(Adodc1.Recordset("createtime")), "", Adodc1.Recordset("createtime"))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 7) = CStr(IIf(IsNull(Adodc1.Recordset("cwname")), "", Adodc1.Recordset("cwname")))
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 8) = CStr(IIf(IsNull(Adodc1.Recordset("cwtel")), "", Adodc1.Recordset("cwtel")))
    
    
    Adodc1.Recordset.MoveNext
Loop
mslfexgrid1.Redraw = True

以下是我的问题:
数据库是SQL 2000.部分字段做了索引.这个表200行记录左右.
1.因为有些字段可能是NULL的.所以不得不大量使用了IIF判断.这个有办法可以解决或者优化吗?
2.用服务器运行这程序 不太慢.大概 1,2秒就出来了.但用其他电脑大概要5,6秒才看到结果(用的是WIFI连接).(就是窗口卡住5,6秒,才显示出结果).是什么原因呢?

[解决办法]

补充一下,如果用绑定,SQL 要改一下:

sqlstr = "SELECT bjdno AS 客户编号, bjdname AS 客户名称, lxman AS 联系人, lx AS 地址, lxtel AS 电话, lxfax AS 传真, createtime AS 创建时间, cwname AS 财务联系人, cwtel AS 财务电话 FROM report WHERE( bjdno LIKE '%" & Text1.Text & "%'or bjdname like '%" & Text1.Text & "%' ) AND lx LIKE '%" & Combo1.Text & "%' order by bjdno "



By the way,你的字段名太有创意了。

热点排行