迁移到较新版本的连接器时,MySqlAdapter会抛出致命异常

时间:2011-11-28 18:17:00

标签: c# mysql stored-procedures

为了给你一些上下文,我在asp.net中有一个web应用程序与MySql Connector 5.0.9工作正常今天我被要求做一些使用MySQL成员资格的原型设计我必须更新驱动程序6.0.7现在我以前的代码不再工作了,它正在用这条消息引发异常。

命令执行期间遇到致命错误。

代码:

MySqlCommand command = new MySqlCommand("SELECT  currentt.id, currentt.firstname, currentt.lastname,currentt.iscommented,currentt.rowversion,ifnull(parent.id,0) as parentid, parent.rowversion as parentversion,child.id as childid,child.rowversion as childversion FROM    (SELECT  hierarchy(id) AS id, @level AS level FROM    (SELECT  @start_with := 0, @id := @start_with,@level := 0) vars, names2 WHERE   @id IS NOT NULL) ho JOIN    names2 currentt ON currentt.id = ho.id left outer join names2 as parent on (currentt.parent=parent.id) left outer join names2 as child on (child.parent = currentt.id and child.id<>currentt.id)order by level",connection);

            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = command;
            ds = new StrongDataSet();
            adapter.Fill(ds, "names");//exception thrown here
            connection.Close();

在做了一些研究后,我假设我的问题来自嵌套的select语句,我在其中设置了一些变量来使用存储过程@ start_time,@ level&amp; @id

现在我很困惑这似乎是一个错误预防失败,因为它是参数化查询表示法,但我不知道如何修改我的代码以符合新的MySQL驱动程序?

任何建议...... 重新!

1 个答案:

答案 0 :(得分:2)

@sql变量和连接器变量存在已知问题。

http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html

尝试在连接字符串中设置Allow User Variables=true。否则,试试MySQLScript。