一尘不染

是否可以在.NET MySqlCommand中使用MySql用户定义的变量?

mysql

我正在尝试执行一个当前在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;
}

关于如何解决这个问题的任何想法?还是我获取行号的可能方法?


阅读 244

收藏
2020-05-17

共1个答案

一尘不染

我发现此博客告诉您,使用较新版本的.net Connector,您必须添加

;Allow User Variables=True

连接字符串。比较我的SO问题如何在.NET
MySqlCommand中使用MySql用户定义的变量?

2020-05-17