C# - 如何使用MySqlAdapter对SQL查询进行参数化。

问题描述 投票:0回答:1

我试图使用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 response

我到底做错了什么?

谢谢!我正在尝试运行一个SQL语句。

c# mysql sql select sql-parametrized-query
1个回答
2
投票

只要去掉参数周围的单引号。你的驱动器已经帮你处理了。

这个:

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

应该是..:

string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= @userName";
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.