MySqlCommand

时间:2015-12-23 17:09:04

标签: 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)

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已通过MySqlCommanddbCon是获取在线数据库的另一个连接(连接没有任何问题,我可以直接连接到在线数据库)。你如何看到我打开连接,将其传递给命令,然后我做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)

我需要再次使用此命令,因为必须以同步模式更新两个数据库。

1 个答案:

答案 0 :(得分:0)

我建议使用 MySql的复制功能,而不是从代码中更新两个数据库。