首页 > 解决方案 > MySqlCommand c# - 如何在替换命令文本中的其他参数时忽略自定义行参数

问题描述

因此,我尝试使用以下语法为每个结果生成一个行号,其中:

var cmd = new MySqlCommand();
cmd.CommandText = @"SET @row = 0;
                    SELECT
                        (@row:= @row + 1) AS row,
                            *
                    FROM
                        clients
                    WHERE
                        name CONCAT('%', @search, '%')";

cmd.Parameters.AddWithValue("@search", "whatever");

try
{
    cmd.Connection.Open();
    using (var reader = cmd.ExecuteReader())
    {
        // blah blah
    }
}
catch (Exception ex)
{
    cmd.Connection.Close();

}  

如果我直接在数据库中运行 MySQL,则此查询工作正常,但我从 c# 收到错误:

Parameter @row must be defined

..如果我使用一个MySqlCommand对象。

有没有办法解决这个问题?

谢谢

标签: c#mysqlmysqlcommand

解决方案


推荐阅读