我有两个非常相似的 vb.net 项目。两者最近都从 .net 1.1 转换为 3.5。
一方面,以下代码没有给出警告。另一方面,当我尝试设置 mysql 命令对象的参数时收到警告:
Public Sub mySub(ByVal applid As Integer, ByVal text1 As String,ByVal text2 As String)
Dim objMYSQL As New Classes.DataAccess.clsMysql
Dim objConnection As New MySQL.Data.MySQLClient.MySqlConnection
objConnection = objMYSQL.ConnectionNew("myDB")
Dim objCommand As MySqlCommand
Dim InsertSQL As String = ""
InsertSQL = "insert into [myTable] ([text1],[text1])"
InsertSQL = InsertSQL + " values(@txt1,@txt2)"
objCommand = New MySQL.Data.MySQLClient.MySqlCommand(InsertSQL, objConnection)
objCommand.CommandType = CommandType.Text
'Set parameters
objCommand.Parameters.Add("@txt1", text1) ' Warning here...
objCommand.Parameters.Add("@txt2", text2) '...and here!
objCommand.ExecuteNonQuery()
End Sub
这是警告:
公共函数 Add(parameterName As String, value As Object) As MySql.Data.MySqlClient.MySqlParameter' 已过时:'Add(String parameterName, Object value) 已被弃用。使用 AddWithValue(String parameterName, Object value)'
如果我按照说明使用“AddWithValue”,警告就会消失。但我不明白为什么我在第一个项目中没有收到这些消息。
他们的配置似乎有些不同,但我不知道是什么。两者都使用相同版本的 mysql.data.dll。两者都配置为通过项目>属性>编译菜单在相同情况下显示警告。任何人都可以建议在哪里检查?