将ado.Recordset对象变量中查询结果显示到MSHFlexGrid控件中出现错误解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hey_wanzi/article/details/76347445

        初学VB,使用ado访问SQL Server,在将ado.Recordset对象变量中查询结果显示到MSHFlexGrid控件时,VB提示出现错误:


       原始代码如下:

Option Explicit

Private Sub Form_Load()
    
    Dim cn As ADODB.Connection
    
    Dim rs As ADODB.Recordset
    
    Dim sql As String
    
    
    Set cn = New ADODB.Connection
    
    cn.Open "Provider= SQLOLEDB;Driver= {SQL Server};Server=(local);DataBase=学生成绩管理系统;UID=sa;PWD=wzj841996569"
    
        sql = "select * from Student"
        
        Set rs = New ADODB.Recordset
        
            rs.Open sql, cn, adOpenForwardOnly, adLockOptimistic
            
            Do While Not rs.EOF
            
                List1.AddItem rs("sname")
                
                Set MSHFlexGrid1.DataSource = rs
               
                rs.MoveNext
                
            Loop
        rs.Close
        
    cn.Close
    
    Set rs = Nothing
    Set cn = Nothing

End Sub

问题解决办法:将上述代码中红色部分的OPEN语句中“数据光标类型asOpenForwardOnly”更改成“adOpenKeyset”即可解决问题。

原因:可能是数据光标类型选用错误导致。

PS:数据光标类型及锁类型如下



猜你喜欢

转载自blog.csdn.net/hey_wanzi/article/details/76347445