VB.NET和MySQL数据库的自动类型转换/空处理
正在将某些项目从VB6转换为VB.NET 2012(同样的问题出现在VB.NET 2002、2005、2008和2012中) 我发现最恼人的问题是,使用VB6中的典型ADO连接,我可以提取数据和任何可能是字符串的字段,我可以添加&“”,以确保它不返回空值,同时在服务器上使用空值保持最佳数据库完整性 在.NET中尝试如此简单的操作时,过程要复杂很多倍,我发现现在必须先转换每个字段,然后才能使用数据-此外,根据字段数据类型以各种方式强制执行空检查-您必须事先知道,才能使用数据 在VB.NET中,下列VB6代码的等效项是什么VB.NET和MySQL数据库的自动类型转换/空处理,vb.net,vb6,ado,adodb,vb6-migration,Vb.net,Vb6,Ado,Adodb,Vb6 Migration,正在将某些项目从VB6转换为VB.NET 2012(同样的问题出现在VB.NET 2002、2005、2008和2012中) 我发现最恼人的问题是,使用VB6中的典型ADO连接,我可以提取数据和任何可能是字符串的字段,我可以添加&“”,以确保它不返回空值,同时在服务器上使用空值保持最佳数据库完整性 在.NET中尝试如此简单的操作时,过程要复杂很多倍,我发现现在必须先转换每个字段,然后才能使用数据-此外,根据字段数据类型以各种方式强制执行空检查-您必须事先知道,才能使用数据 在VB.NET中,下列
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组件)的文档
好了,你们两个都别说了。这场讨论毫无成效,所以我要把它抹掉。我建议你们都走开,别管这个了。看来你们应该把问题更多地放在如何设置VB.NET数据库连接上。为此,你应该指定你想要的数据库和你发现的问题(你包含的链接包含完美的工作代码;你有什么疑问?)。这是我的全部帮助,接受它或离开它;但是让我们最好停止所有的交流,你不这样认为吗?