正在将一些项目从 VB6 转换为 VB.NET 2012(同样的问题出现在 VB.NET 2002、2005、2008 和 2012 中)
我发现最烦人的问题是,使用 VB6 中的典型 ADO 连接,我可以提取我的数据,以及任何可能是字符串的字段,我可以添加 &“”,以确保它不返回空值,但保持使用 null on服务器以获得最佳的数据库完整性。
在 .NET 中尝试如此简单的事情时,过程要复杂很多倍,我发现现在必须转换每个单独的字段,然后才能使用数据 - 此外,还要根据字段以各种方式强制进行 null 检查数据类型——你必须事先知道才能玩。
VB.NET 中以下 VB6 代码的等价物是什么?
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
sSQL = "SELECT reminderdate FROM notes WHERE uniqueid=" & NoteID
cn.Open "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=" & Chr(34) & "DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & DatabaseServer & ";DATABASE=" & DatabaseName & ";UID=" & DatabaseUsername & ";PWD=" & DatabasePassword & ";OPTION=16427" & Chr(34) & ";Initial Catalog=" & DatabaseName & ""
rs.Open sSQL, cn, adOpenForwardOnly, adLockReadOnly
If rs.EOF = False Then
While rs.EOF = False
For Each rs.Fields as fieldData
Debug.Print fieldData & "|"
Next fieldData
Debug.Print "===========" ' Delimited for next record data
Wend
End If
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
请理解,上面的代码不关心数据是什么类型,不关心数据库中有多少字段,也不关心存在多少条记录。
编辑:我假设既然我说我希望在 .NET 中做同样的事情,很明显我希望使用 .NET 组件,而不是 COM 进行连接。
请参阅此处的文档,了解如何使用作为原生 .NET 组件的 MySqlData 连接器。