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

        初学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:数据光标类型及锁类型如下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值