Как связать параметры через ODBC C #?

Мне нужно связать параметры запроса ODBC с C #. Это пример кода, но VS говорит мне, что отсутствует один параметр.

OdbcCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM user WHERE id = @id"; cmd.Parameters.Add("@id", OdbcType.Int).Value = 4; OdbcDataReader reader = cmd.ExecuteReader(); 

Каков синтаксис привязки значений ODBC?

Odbc не может использовать именованные параметры. Это означает, что в командной строке используются заполнители для каждого параметра, и этот заполнитель является единственным вопросительным знаком, а не именем параметра.

OdbcCommand.Parameters

Затем вам нужно добавить параметры в коллекции в том же порядке, в котором они появляются в командной строке

 OdbcCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM [user] WHERE id = ?"; cmd.Parameters.Add("@id", OdbcType.Int).Value = 4; OdbcDataReader reader = cmd.ExecuteReader(); 

У вас также есть другая проблема: слово USER является зарезервированным ключевым словом для базы данных MS Access, и если вы хотите использовать его как имя поля или имя таблицы, то необходимо заключить каждую ссылку в квадратные скобки. Я настоятельно рекомендую, если это возможно, изменить это имя таблицы, потому что вы будете сталкиваться с этой проблемой очень часто.

использовать "?" вместо @ если вы используете ODBC.

Попробуйте сделать следующее:

 OdbcCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM user WHERE id = ?"; cmd.Parameters.Add("@id", OdbcType.Int).Value = 4; OdbcDataReader reader = cmd.ExecuteReader(); 
  • MySqlCommand Command.Parameters.Add устарел
  • c # Использование Parameters.AddWithValue в SqlDataAdapter
  • Android устанавливает высоту и ширину пользовательского вида программно
  • Использование ключевого слова «this» в формальных параметрах для статических методов в C #
  • Передача только типа параметра в C #
  • Конфликт перегруженных методов с дополнительными параметрами
  • Параметр, проходящий в C - указатели, адреса, псевдонимы
  • Передача компонента поддержки в качестве параметра для Facelet включает
  • В чем разница между аргументом и параметром?
  • Передавать по ссылке или передавать по значению?
  • Передача параметров JavaFX FXML
  • Давайте будем гением компьютера.