MySqlCommand上的System.NullReferenceException
我试图在两个不同的数据库上执行相同的查询,为此,我在MySqlCommand上的System.NullReferenceException,mysql,vb.net,Mysql,Vb.net,我试图在两个不同的数据库上执行相同的查询,为此,我在My.Settings中创建了两个连接字符串。现在,第一个函数(在localhost中添加值)运行良好。见: Dim query = "INSERT INTO text_app (name, last_name) VALUES(@namep, @last_namep)" Dim MySqlCommand = New MySqlCommand(query, dbCon)
My.Settings
中创建了两个连接字符串。现在,第一个函数(在localhost中添加值)运行良好。见:
Dim query = "INSERT INTO text_app (name, last_name)
VALUES(@namep, @last_namep)"
Dim MySqlCommand = New MySqlCommand(query, dbCon)
MySqlCommand.Parameters.AddWithValue("@namep", name.Text)
MySqlCommand.Parameters.AddWithValue("@last_namep", last_name.Text)
MySqlCommand.ExecuteNonQuery()
Sync.SyncOut(MySqlCommand) 'Pass the object to another function
我将MySqlCommand
传递给SyncOut
函数,如下所示:
Using dbCon As MySqlConnection = establishWebConnection()
Try
dbCon.Open() 'Open connection..
'Clone the previous used object for reusing it
Dim MySqlCommand = query_command.Clone
MySqlCommand.Connection = dbCon 'Pass the new connection
MySqlCommand.ExecuteNonQuery() 'Execute the query
Return True
Catch ex As Exception
MessageBox.Show(ex.InnerException.Message)
End Try
End Using
现在query\u命令
已通过MySqlCommand
。dbCon
是获取联机数据库的另一个连接(该连接没有任何问题,我可以直接连接到联机数据库)。如何查看我打开连接,将其传递给命令,然后执行ExecuteNonQuery
,在此命令上,我得到:
System.NullReference异常
如果我使用ex.Message
我可以看到具体的错误:
无法添加或更新子行:外键约束失败(“日历”。“文本应用程序”,约束“文本应用程序”\u ibfk\u 3”外键(“id服务”)在更新的级联上的删除级联上引用“文本服务”(“id”))
我需要再次使用此命令,因为两个数据库必须在同步模式下更新。我建议使用MySql的复制功能,而不是从代码中更新两个数据库。我过去也遇到过同样的问题,这意味着web数据库结构需要将id更新为与所有表相同的id。在本地数据库中,您有不同的ID,所以问题是您在vb.net中引用了“NULL”、“NOTHING”。您可以在设置表时按顺序设置ID,也可以回想同步逻辑。请发布方法的完整来源。为什么在命令中使用克隆?建议是什么?