.Net与MySQL:忽略commandtext

时间:2017-11-02 13:22:13

标签: mysql vb.net parameters

我正在尝试将一些存储过程从一台服务器复制到另一台服务器。它大部分工作正常,但我有一些SP,其中定义了@max_heap_table_size。然后.Net连接器拒绝使用错误“参数'@max_heap_table_size'必须定义。”。如何管理不使用参数的命令?

代码的一部分(scom是source-command,tcom是target-command):

scom.CommandText = "show create procedure `" & proc & "`"
rd = scom.ExecuteReader
If rd.Read() Then
    Dim cmd As String = "delimiter $$" & Environment.NewLine & rd.GetString(2) & "$$" & Environment.NewLine & "delimiter ;"
    tcom.CommandText = cmd
    tcom.ExecuteNonQuery()
End If

用户和权限没有问题。某些SP以这种方式复制没有任何问题。但是使用全局MySQL变量的SP不能以这种方式复制。

谢谢!

编辑:问题被标记为VB.net和C#,因为它独立于.Net语言。

Edit2:proc是存储过程的名称,rd.GetString(2)返回“show create procedure”(参见代码的前两行)。它在MySQL索引2中从MySQL返回。

1 个答案:

答案 0 :(得分:0)

你会在这里找到答案。你应该使用双@@。另外,请确保使用MySQL附带的MySQL .NET连接器。

max heap set