为了给你一些上下文,我在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驱动程序?
任何建议...... 重新!
答案 0 :(得分:2)
@sql变量和连接器变量存在已知问题。
http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html
尝试在连接字符串中设置Allow User Variables=true
。否则,试试MySQLScript。