Как назначить строковую переменную для SelectCommand - PullRequest
0 голосов
/ 17 января 2012

У меня есть два оператора выбора (Str1, Str2) в двух строковых переменных.У меня также есть условие, когда соответствующий оператор выбора выбирается и присваивается другой строке (res).

Это оператор выбора, который должен быть присвоен свойству SelectCommand элемента управления SqlDataSource на моей веб-странице.

Код:

int id =1;
string Str1 = "Select * from table";
string Str2 = "Select * from table where id = "+id;
string res;
if(id == 0)
{
  res=Str2;
}else
{
  res=Str1;
}

Моя разметка выглядит следующим образом:

<asp:gridview.....></aspgridview>
<asp:SqlDataSource ID="ds1" runat="server"
  ConnectionStrings="<%ConnectionStrings.ConnStr%>"
  SelectCommand="<%# res%>">
</asp:SqlDataSource>

Как назначить строковую переменную res для моего SqlDataSource SelectCommand атрибута из моего кода или встроенного кода C #?

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Вы не можете установить свойство SelectCommand из своего кода, добавив следующий оператор после блока if / else:

ds1.SelectCommand = res;

Затем вы можете удалить выражение из кода разметки:

<asp:SqlDataSource ID="ds1" runat="server"
  ConnectionStrings="<%ConnectionStrings.ConnStr%>" />
1 голос
/ 17 января 2012

Вы должны использовать его, как в Использование параметров с SqlDataSource Control статья в msnd.

Если вы просто добавляете такие строки, у вас будет уязвимость SQL-инъекции.

0 голосов
/ 17 января 2012

Для программного присвоения SelectCommand для вашего SqlDataSource:

ds1.SelectCommand = res;

Где res - текст вашей команды.

...