将一些项目从VB6转换为VB.NET 2012(在VB.NET 2002,2005,2008和2012中出现同样的问题)
我觉得最烦人的问题是,在VB6中使用典型的ADO连接,我可以拉取我的数据,以及可能是字符串的任何字段,我可以添加& “”,以确保它不返回空值,但仍保持在服务器上使用null以获得最佳的数据库完整性。
在.NET中尝试这么简单的事情时,程序要复杂很多倍,我发现现在必须先转换每个字段才能使用数据 - 此外,还要以各种方式强制进行空值检查字段数据类型 - 您必须事先了解才能玩。
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用于连接。
请参阅此处有关如何使用MySqlData连接器的文档,该连接器是本机.NET组件。