c#:MySQl用参数执行sql文件

时间:2016-06-03 15:21:25

标签: c# mysql

使用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检查和绑定?

0 个答案:

没有答案