所有
尝试在VB.NET中实现记录集方法,并且(在这个社区的帮助下)已经达到几乎运行的程度。 :)
代码:
Dim strSQL As String
Dim rsMaster As New ADODB.Recordset
strSQL = "select * " & "from tblDQ " & "order by xid, xcode, xDOS"
rsMaster.Open(strSQL, objConn, adOpenForwardOnly, adLockOptimistic)
最后一行在尝试执行rsMaster.Open行时抛出异常:
COM异常未处理
参数类型错误,超出可接受的范围,或彼此冲突。
有什么想法吗?更改光标类型或锁定类型似乎没有任何好处,上面指定的类型在编码行时可用作选项。我(在WAG上)将以下几行添加到项目中:
导入ADODB.LockTypeEnum 导入ADODB.CursorTypeEnum
没有运气。TIA!
戴夫
答案 0 :(得分:1)
一些想法:
select *
应该有效,但尝试使用特定的简单列(短字符串或整数),可能存在“棘手”列数据类型的问题。更多想法:
答案 1 :(得分:0)
好的,如果删除adOpenForwardOnly并且adLockOptimistic参数没有改变任何内容,那么如何稍微更改代码以使用Connection对象的Execute方法呢?
rsMaster.Open(strSQL, objConn, adOpenForwardOnly, adLockOptimistic)
变为
rsMaster = objConn.Execute(strSQL)
答案 2 :(得分:0)
不确定您的连接。您有一个Access标记,但提到您在SQL Server中测试过。如果您使用的是访问.mdb文件
导入adodb
Public Class Form1
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strSQL, strConn As String
Dim rsMaster As New ADODB.Recordset
Dim objConn As New ADODB.Connection
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DQ\DQ.mdb"
objConn.Open(strConn)
strSQL = "select * " & "from tblDQ " & "order by xid, xcode, xDOS"
rsMaster.Open(strSQL, objConn, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockOptimistic)
rsMaster.MoveFirst()
Me.Text = rsMaster("xcode").Value
rsMaster.Close()
rsMaster = Nothing
End Sub
End Class