PostgreSql ОШИБКА: 22P02: неверный синтаксис ввода для целого числа - PullRequest
1 голос
/ 16 октября 2010

Я пытаюсь использовать подготовленные операторы в PostgreSQL, но это дает мне довольно неприятные ошибки.

Я пытаюсь выбрать одну запись из БД по MediaID. В БД MediaID является последовательным целым числом. В структуре класса это int.

Однако когда я вызываю sql.Prepare (), он говорит, что у меня неверный синтаксис ввода для MediaID. Я не понимаю, как это могло быть.

NpgsqlCommand sql = mediaRepository.CreateCommand();

sql.CommandText = "SELECT * FROM Media WHERE 'MediaID' = :MediaID";
sql.Parameters.Add(new NpgsqlParameter("MediaID", NpgsqlDbType.Integer));
sql.Prepare();
sql.Parameters["MediaID"].Value = id;

Огорчает то, что, если я установил miscast для int как NpgsqlDbType.Varchar, он готовится очень хорошо - он просто не возвращает никакой информации.

Есть идеи?

1 Ответ

0 голосов
/ 16 октября 2010

Попробуйте изменить это предложение:

sql.CommandText = "SELECT * FROM Media WHERE 'MediaID' = :MediaID";

На это:

sql.CommandText = "SELECT * FROM Media WHERE MediaID = :MediaID";

Обратите внимание на исключение из одинарных кавычек из поля MediaID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...