Оригинал запроса, который я могу запустить положителен в PgAdminIII:Работы с двойными кавычками и параметр добавления в запрос
SELECT * FROM oestrat."Themenfeld"
oestrat и Themenfeld представляет собой строка, поступающая из Winform текстовых полей.
Так что мой запрос в VS будет:
string qry = "SELECT * FROM @schema.\"@line\"";
NpgsqlCommand cmd = conn.CreateCommand();
cmd.Parameters.Add(new NpgsqlParameter("@schema", tbSchema.Text)); // tbSchema.Text = oestrat
cmd.Parameters.Add(new NpgsqlParameter("@line", l)); // string l = Themenfeld
cmd.CommandText = qry;
conn.Open();
NpgsqlDataReader dr = cmd.ExecuteReader();
while (dr.Read()) <<< ERROR
{
....
}
Он всегда ловит исключение:
42601: syntax error at or near "@"
Проверьте, что 'cmd.CommandText' равно после этого 'cmd.CommandText = qry;' строка –
Он равен 'SELECT * FROM @schema." @ line "' и да, сырые непараметризированные работы. – manuzi1