1

正在将一些项目从 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 连接器。

MySqlConnection 示例

4

0 回答 0