使用含有多个语句的SQL文件进行执行

3
我想执行一些SQL文件,但我遇到了问题(我认为)是这些文件中有多个语句。在这里看到:

http://pastebin.com/yenknuq6

尝试执行此SQL会抛出异常:

"at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()"

我正在使用MySQL连接器,并且没有对字符串进行任何修改,只是从文件中读取它们。

using (MySqlConnection conn = new MySqlConnection())
{
    try
    {
        conn.ConnectionString = connect_str;
        conn.Open();
        Console.WriteLine("\n[EXECUTING] " + file);
        String sql = File.ReadAllText(file);
        if (sql != null && !sql.Equals(""))
        {
            Debug.WriteLine(sql);
            MySqlCommand command = new MySqlCommand(sql, conn);
            command.CommandText = sql;
            command.Prepare();

            command.ExecuteNonQuery();
        }
        else
            Console.WriteLine("no sql");

        conn.Close();
    }
    catch (Exception e)
    {
        Console.WriteLine("[SQL EXCEPTION] " + e.StackTrace);
    }
}

1
问题在于脚本中的 @ 字符被误认为是参数。我想这个问题的答案会对你有所帮助。 - Luke Woodward
谢谢,这就是解决方案。 - jn025
1个回答

0

你必须输入连接参数 Allow User Variables=True 才能使其正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接