我试图在两个不同的数据库上执行相同的查询,为此,我在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_command
已通过MySqlCommand
。 dbCon
是获取在线数据库的另一个连接(连接没有任何问题,我可以直接连接到在线数据库)。你如何看到我打开连接,将其传递给命令,然后我做ExecuteNonQuery
,我得到这个命令:
System.NullReference异常
如果我使用ex.Message
,我可以看到具体的错误:
无法添加或更新子行:外键约束失败('日历'。' text_app',CONSTRAINT' text_app_ibfk_3' FOREIGN KEY(&#39 ; id_services')参考' text_service'(' id')ON UPETE CASCADE ON UPDATE CASCADE)
我需要再次使用此命令,因为必须以同步模式更新两个数据库。
答案 0 :(得分:0)
我建议使用 MySql的复制功能,而不是从代码中更新两个数据库。