Я использую Npgsql с C # для связи с моей базой данных PostgreSQL. Все имена, используемые в моей базе данных, имеют смешанный регистр, поэтому в запросе я использую двойные кавычки вокруг каждого имени. Вот как я отправляю запрос:
// construct an insert query
string insertQuery = "insert into \"Update\" (\"Vehicle\",\"Property\",\"Value\") " +
"values (" + vehicleNum.ToString() + ",\"" + propertyName +
"\",\"" + propertyValue + "\")";
// execute the query
NpgsqlCommand insertCommand = new NpgsqlCommand(insertQuery, conn);
insertCommand.ExecuteScalar();
Вставив точку останова и проверив, я проверил, что строка insertQuery
выглядит так перед отправкой:
insert into "Update" ("Vehicle","Property","Value") values (12345,"EngineSpeed","50")
Когда я отправляю этот запрос, PostgreSQL выдает мне ошибку, которая заключена в исключение Npgsql, которое гласит: ERROR: 42703: column "EngineSpeed" does not exist
Из моего запроса должно быть очевидно, что EngineSpeed
- это не столбец, это значение столбца Property
, поэтому, естественно, столбец с таким именем вряд ли существует. Итак, почему PostgreSQL обрабатывает мой запрос таким образом, и как я могу решить эту проблему? Мой запрос был составлен неправильно?