/*说明:
查询并显示在列表里
查询成功了,在监视器看到recordset里有数值,
但绑定datagrid的语句过后,发现dataSource里“无变量”
控件也没显示任何东西搞个绑定都这么多麻烦,晕啊
*/
Set AdoStuRs = New ADODB.Recordset
AdoStuRs.CursorLocation = adUseClient'QueryExt是我自己定义的执行sql语句的函数
Set AdoStuRs = QueryExt("SELECT [StuNum],[Sn],[Contact],[Campus] FROM [student]")
AdoStuRs.MoveFirst
'绑定到datagrid控件 
Set DataGridStuList.DataSource = AdoStuRs
DataGridStuList.ReBind
DataGridStuList.Refresh
//**********
之前都有几个人问过类似的问题,但我用了大家给的建议都没能解决问题:(
顺便问问,、。。
adOpenKeyset, adLockOptimistic
这些到底是什么意思啊?

解决方案 »

  1.   

    如果你确定AdoStuRs里有数据,那么仅Set DataGridStuList.DataSource = AdoStuRs就可以显示了,你的程序无法显示可能是设置了其他属性的问题,你可以直接拖一个DataGrid到窗体,绑定到这个DataGrid试试看
      

  2.   

    adOpenKeyset决定数据集打开时游标类型adLockOptimistic记录集加锁选项,为开放式加锁功能你的语句没问题,Set DataGridStuList.DataSource = AdoStuRs 这具已经可以了你看看你vb引用里选中microsoftdata binding collection vb 6.0了吗!
      

  3.   

    改为:
    Set DataGridStuList.DataSource = AdoStuRs.clone 
      

  4.   

    都不行啊,不得已,只好改用adodc控件了
      

  5.   

    adosturs.open sql,conn,1,1
    Set DataGridStuList.DataSource = AdoStuRs
    DataGridStuList.Refresh你这样看看
      

  6.   

    楼主你好,这个问题我遇到过,这是因为你在DateGrid属性里修改了“列”选项卡中的“标题”而未给相应修改标题后的列指定绑定到数据库的哪个字段。如果不设置,VB将自动取数据库中的相应字段作为列标题,而一旦设置标题,那么VB就会按照“数据字段”中的内容到Recordset中去寻找相关字段,不输入则就认为字段为"",不知道是不是VB的一个漏洞,你再试试。如果解释的不好,请各位指正。