繁体   English   中英

C# - 如何使用 MySqlAdapter 参数化 SQL 查询

[英]C# - How to parametrize SQL query with MySqlAdapter

我正在尝试使用 MySqlAdapter 运行 SQL 查询,以便它返回 DataTable 中的数据。

我在参数化方面遇到了麻烦。 基本上它不返回任何东西,它应该返回 2 行。

我有这个代码:

        using (MySqlConnection connection = new MySqlConnection(CONSTANTS.dbCONNECTSTRING))
        {
            string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= '@userName'";
            MySqlCommand command = new MySqlCommand(sqlQuery, connection);
            command.Parameters.Add(new MySqlParameter("@userName", userCtrl.UserName));

            MySqlDataAdapter dataAdapter = new MySqlDataAdapter(command);

            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet);

            DataTable dtResults = dataSet.Tables[0];           
        }

我检查并且 userCtrl.UserName 具有正确的值,所以我假设参数化有问题。

正如我之前所说的,问题是 dtResults 在它应该有至少 2 行时最终是空的。 我检查了在 SQL 中运行查询。

SQL 响应

我究竟做错了什么?

谢谢!

只需删除参数周围的单引号即可。 您的驱动器已经为您处理了。

这个:

string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= '@userName'";

应该:

string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= @userName";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM