gpt4 book ai didi

mysql - 如何将 CommandText 传递给另一个 MySqlCommand?

转载 作者:行者123 更新时间:2023-11-29 11:49:11 25 4
gpt4 key购买 nike

标题有点粗俗,我会尽力解释得更好。因此,在我的应用程序中,我有两个连接字符串,一个用于本地数据库,另一个用于 Web 数据库。这两个数据库必须使用相同的记录进行更新。现在,在我的应用程序中,当我在本地数据库中添加记录时,我会执行一个函数,该函数将 MySqlCommand 对象传递给另一个使用 Web 数据库的另一个连接字符串的函数。在第二个函数中,我需要执行已在本地数据库中执行的相同操作。示例代码:

函数本地数据库

 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

功能网络数据库(SyncOut)

Using dbCon As MySqlConnection = establishWebConnection()

Try
dbCon.Open()
Dim MySqlCommand = New MySqlCommand(query_command, dbCon)

MySqlCommand.ExecuteNonQuery()

Return True

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Using

现在query_command包含从本地函数传递的MySqlCommanddbCon是新的连接对象。

当我在 SyncOut 函数上执行 .ExecuteNonQuery 时,出现以下错误:

Invalid Cast from 'MySqlCommand' type to 'String' type.

我需要的是获取query_command中包含的.CommandText属性,但我无法访问该属性。

我到底做错了什么?我怎样才能实现这一目标?

最佳答案

要做的第一件事是更改代表 MySqlCommand 的变量的名称。我找不到任何合理的理由来允许混淆,因为这会沿着您的代码传播。即使语言允许,也不要用与其类相同的名称来命名变量,这会很困惑

Dim query = "INSERT INTO text_app (name, last_name)
VALUES(@namep, @last_namep)"

Dim cmd = New MySqlCommand(query, dbCon)

当然,还要用新名称更改对旧名称的所有引用。

现在在SyncOut的声明中写入

Public Sub SyncOunt(ByVal cmd As MySqlCommand)
...
' Do not forget to open the connection '
dbCon.Open()
Dim aDifferentCommand = cmd.Clone()
aDifferentCommand.Connection = dbCon
....

关于mysql - 如何将 CommandText 传递给另一个 MySqlCommand?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com