Как выполнить запрос DESC tablename с помощью параметризованных запросов
MySql-это база данных, используемая здесь.
Попытка выполнить DESC tableName или DESC `tableName` с помощью параметризованных запросов в C#, как показано ниже. Однако, столкнувшись с ошибкой типа "у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с сотрудником", где сотрудник-это имя таблицы.
Что я уже пробовал:
But with the below code, i think query getting executed is DESC 'tableName' which is syntax error. Please help how to solve this issue. <pre lang="c#">public void GetTableDescriptiont(string tableName) { ConnectionManager conManager = new ConnectionManager(); MySqlCommand dbCommand = new MySqlCommand { Connection = conManager.GetConnection(databaseName), CommandText = "DESC @tableName" }; dbCommand.Parameters.AddWithValue("@tableName",tableName); var abc = dbCommand.ExecuteReader();//Gets exception as query is DESC 'tableName'
Richard MacCutchan
Что ты пытаешься здесь сделать? Насколько мне известно, "DESC" используется для сортировки результатов в порядке убывания.
everstudent
Команда DESCRIBE или DESC(оба они одинаковы) предназначена для описания структуры таблицы. Синтаксис: опишите один или DESC one
Richard MacCutchan
Возможно, синтаксис не допускает параметризованных запросов. Попробуйте его в виде одной строки и посмотрите, что получится. Также полезно включать точный текст любых сообщений об ошибках, которые генерируются. А также какую систему баз данных вы используете; "C#" мало что нам говорит.
everstudent
Обновил вопрос. MySQL-это база данных, и ошибка похожа на "У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с сотрудником" ( где сотрудник-это имя таблицы). Он работает непосредственно как одна строка, например DESC `Employee`.
Может быть, как вы уже упоминали, если он не поддерживает параметризованные запросы, но как это подтвердить? А visual studio выдает предупреждение анализа кода безопасности о том, что при получении пользовательских данных следует использовать параметризованные запросы, чтобы избежать внедрения sql-кода.
Richard MacCutchan
Итак, MySQL нуждается в нем как в одной строке. Предупреждения от VS таковы: убедитесь, что вы избегаете возможности SQL-инъекции, проверяя входной параметр.