使用VB.NET和MySQL数据库进行自动类型转换/空值处理

时间:2013-07-01 22:43:59

标签: vb.net vb6 ado adodb vb6-migration

将一些项目从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组件。

MySqlConnection Examples

0 个答案:

没有答案