C# - Как параметризовать SQL запрос с MySqlAdapter - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь выполнить запрос SQL, используя MySqlAdapter, чтобы он возвращал данные в 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

Что я делаю не так?

Спасибо!

1 Ответ

2 голосов
/ 22 апреля 2020

Просто удалите одинарные кавычки вокруг параметра. Ваш привод уже справляется с этим.

Это:

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

Должно быть:

string sqlQuery = $"SELECT * FROM tfg_bcovi.User where userName= @userName";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...