使用MySqlCommand我正在尝试执行更新数据库的.sql。
大文件包含更新,删除,存储过程等。它还使用了一些变量:
SET @_count := (
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'easycertlistfwk_audit'
AND TABLE_NAME = 'AUDIT_TITLE'
AND COLUMN_NAME = 'TI_ORDER');
IF @_count = 0 THEN
ALTER TABLE `AUDIT_TITLE`
ADD COLUMN `TI_ORDER` int(11) NULL AFTER `TI_DESCR`;
我用c#执行它的代码是:
using (MySqlConnection conn = new MySqlConnection(constring))
{
using (MySqlCommand cmd = new MySqlCommand())
{
conn.Open();
cmd.CommandText = File.ReadAllText(dbUpdatesFile);
cmd.ExecuteNonQuery();
conn.Close();
}
}
cmd.ExecuteNonQuery()方法引发异常,告诉我必须定义@_count。我想它需要传递给命令的其中一个参数,但在这种情况下,所有代码(以及临时变量声明)都在我想要执行的sql文件中。
怎么做?有没有办法忽略params检查和绑定?