前贴已结,,,见http://community.csdn.net/Expert/TopicView3.asp?id=4187850
我数据库中的一个表中有2万多行数据在使用MSHFlexGrid1进行显示时,最多只能显示1016行我已经安装了SP6,SP5,但问题依旧附:后发现sql="select * from xx"能显示2万多行全部数据sql="SELECT a.a1,b.b2 FROM (a INNER JOIN b ON a.id = b.id) WHERE (((a.jsnd)='2005'))"
时只能显示1036行当
sql="SELECT a.a1,b.b2,c.c3 FROM (a INNER JOIN b ON a.id = b.id) INNER JOIN tb_zgdwlx ON c.id =b.id WHERE (((a.jsnd)='2005'))"
时就只能显示1016行了我将conn.ConnectionString修改为
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sj;Data Source=XW;Connect Timeout=30"故障依旧怀疑时SQL语句查询太慢的问题,改成 存储过程后能给MSHFlexGrid1填充1032行,没有太大改变请大家帮助

解决方案 »

  1.   

    sql="select * from xx"应该是sql="select * from a"
      

  2.   

    你不用 set MSHFlexGrid1.datesouse=rs
    用for循环添加的方法看一下
      

  3.   

    用FOR 循环???请教了~~~~~
    ×××××××××××××××
    to :greentest(淡) 
    用sql="SELECT a.a1,b.b2,c.c3 FROM (a INNER JOIN b ON a.id = b.id) INNER JOIN tb_zgdwlx ON c.id =b.id WHERE (((a.jsnd)='2005'))"
    在SQL 查询器里执行时是可以正常返回19000多条数据的
      

  4.   

    With MSHFlexGrid1
            If Not re.EOF Then            .Clear
                .Rows = 1
                .TextMatrix(0, 0) = re.Fields(0).Name
                .TextMatrix(0, 1) = re.Fields(1).Name
                .TextMatrix(0, 2) = re.Fields(2).Name
                .TextMatrix(0, 3) = re.Fields(3).Name
                .TextMatrix(0, 4) = re.Fields(4).Name
                .TextMatrix(0, 5) = re.Fields(5).Name
                .TextMatrix(0, 6) = re.Fields(6).Name
                .TextMatrix(0, 7) = re.Fields(7).Name
                i = 1
                Do Until re.EOF
                    .Rows = .Rows + 1
                    .TextMatrix(i, 0) = re.Fields(0) & ""
                    .TextMatrix(i, 1) = re.Fields(1) & ""
                    .TextMatrix(i, 2) = re.Fields(2) & ""
                    .TextMatrix(i, 3) = re.Fields(3) & ""
                    .TextMatrix(i, 4) = re.Fields(4) & ""
                    .TextMatrix(i, 5) = re.Fields(5) & ""
                    .TextMatrix(i, 6) = re.Fields(6) & ""
                    .TextMatrix(i, 7) = re.Fields(7) & ""
                    i = i + 1
                    re.MoveNext
                Loop
            End If
            
            Set re = Nothing
      

  5.   

    to zyg0(影子(成功减肥10斤,可给我饿坏了,我要补回来) (谢谢你的代码不过这样填充的话近2万条数据速度太慢了啊
      

  6.   

    查询分析器中执行sql="SELECT a.a1,b.b2,c.c3 FROM (a INNER JOIN b ON a.id = b.id) INNER JOIN tb_zgdwlx ON c.id =b.id WHERE (((a.jsnd)='2005'))"能返回多少行?要看看你自己的条件规定是否正确,如果觉得连接时间有问题,可以将连接时间设置成为0,让其一直不过期
      

  7.   

    上面说到了sql="SELECT a.a1,b.b2,c.c3 FROM (a INNER JOIN b ON a.id = b.id) INNER JOIN tb_zgdwlx ON c.id =b.id WHERE (((a.jsnd)='2005'))"在SQL 查询器里执行时是可以正常返回19000多条数据的××××××××××××××××××××××××
    Connect Timeout=0我也试过了,我不知道
      

  8.   

    看看你的MSHFlexGrid1.datesouse.RecordCount是多少?
      

  9.   

    不是MSHF控件的问题,问题出在你的SQL语句上,不信你可以在查询分析器里面试试。
      

  10.   

    1、在查询分析器确定你的查询是否真的有返回那么多行数据
    2、执行完查询语句以后立即检查recordset的RecordCount到底是多少行
    3、如果前面两点检查都是正确的,而填充到grid中的时候只有一千多行那么检查你的VB是否打过sp5,MSHGrid的bug导致了绑定数据集的时候数据不完整,如果你的部件引用不是"Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)"那么赶快去打补丁。SP5如果找不到可以和我QQ联系71429660