我正在尝试执行一个当前在phpMyAdmin中可用的查询,但是使用MySqlAdapter在.NET中执行该查询时不起作用。这是Sql语句。
SELECT @rownum := @rownum +1 rownum, t . * FROM ( SELECT @rownum :=0 ) r, ( SELECT DISTINCT TYPE FROM `node` WHERE TYPE NOT IN ('ad', 'chatroom') )t
它使用@rownum对从我的内部标量查询返回的每个不同的行进行编号。但是,如果我在.NET中使用它,则假定@rownum是一个参数并抛出异常,因为我没有定义它。
using (var sqlConnection = new MySqlConnection(SOURCE_CONNECTION)) { sqlConnection.Open(); MySqlDataAdapter sqlAdapter = new MySqlDataAdapter(SqlStatement, sqlConnection); DataTable table = new DataTable(); sqlAdapter.Fill(table); sqlConnection.Close(); return table; }
关于如何解决这个问题的任何想法?还是我获取行号的可能方法?
我发现此博客告诉您,使用较新版本的.net Connector,您必须添加
;Allow User Variables=True
连接字符串。比较我的SO问题如何在.NET MySqlCommand中使用MySql用户定义的变量?