0

我正在尝试使用 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 响应

我究竟做错了什么?

谢谢!

4

1 回答 1

2

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

这个:

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

应该:

string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= @userName";
于 2020-04-22T17:14:12.193 回答