如何将字符串变量分配给SelectCommand

本文关键字:分配 SelectCommand 变量 字符串 | 更新日期: 2023-09-27 18:20:23

我在两个字符串变量中有两个select语句(Str1Str2)。我还有一个条件,即选择适当的select语句并将其分配给另一个字符串(res)。

这是要分配给网页上SqlDataSource控件的SelectCommand属性的select语句。

代码为:

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>

如何从我的codeehind或内联C#代码将字符串变量res分配给SqlDataSource SelectCommand属性?

如何将字符串变量分配给SelectCommand

您可以通过在if/else块后添加以下语句,从代码后面设置SelectCommand属性:

ds1.SelectCommand = res;

然后您可以从标记代码中删除表达式:

<asp:SqlDataSource ID="ds1" runat="server"
  ConnectionStrings="<%ConnectionStrings.ConnStr%>" />

您应该像在msnd上的SqlDataSource控件中使用参数一样使用它。

如果你只是像那样附加字符串,你就会有SQL注入漏洞。

以程序方式将SelectCommand分配给SqlDataSource:

ds1.SelectCommand = res;

其中res是您的命令文本。