Передача параметров в SQL-запрос из C#

Здравствуйте, передаю параметры в sql-запрос используя драйвер npgsql:

SqlCommand = new NpgsqlCommand();
....
SqlCommand.CommandText = "SELECT id,name  FROM table1 WHERE field1=:_param2 ORDER BY name;";
SqlCommand.Parameters.AddWithValue("_param2", 1);

В таком виде все прекрасно выполняется и выдаются необходимые данные, но как только я добавляю в sql-запрос параметр в раздел "select"

SqlCommand.CommandText = "SELECT id,name  :_param1 FROM table1 WHERE field1=:_param2 ORDER BY name;";
SqlCommand.Parameters.AddWithValue("_param1", ",field1");
SqlCommand.Parameters.AddWithValue("_param2", 1);

выдается какая-то галиматья. По идее этот запрос на сервере должен обработаться как

SELECT id,name,field1 FROM table1 WHERE field1=1 ORDER BY name;

но этого почему-то не происходит.
В связи с этим возникает вопрос: можно ли как-то динамически сформировать список полей на выдачу используя подобные переменные?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

SELECT id,name  :_param1 FROM

SELECT id,name  :_param1 FROM table1 WHERE field1=:_param2 ORDER BY name;

Как видно, в вашем запросе "name :_param1" отсутствует "," - запятая.

запятая "," присутствует в

запятая "," присутствует в передаваемом значении
SqlCommand.Parameters.AddWithValue("_param1", ",field1");

0_o Это же передаваемые

0_o

Это же передаваемые параметры, они не конкатенируют текст запроса!
Если тебе нужно собирать запрос, то ты так и должен делать:

string s += "select o1";
s+=", o2";
s+=", <img class="ccfilter smileys" src="https://pgdocs.ru/sites/ALL/modules/ccfilter/smileys/ae.gif" alt=":p" title=":p" />1";
s+=" from bla";
 
SqlCommand.Parameters.AddWithValue("p1", Math.PI);

Ясно?

ага, спасибо

ага, спасибо

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023