我在两个字符串变量中有两个select语句(Str1
,Str2
)。我还有一个条件,选择适当的select语句并将其分配给另一个字符串(res
)。
这是要在我的网页上分配给SelectCommand
控件的SqlDataSource
属性的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>
如何从我的代码隐藏或内联C#代码中将我的字符串变量res
分配给SqlDataSource
SelectCommand
属性?
答案 0 :(得分:3)
您可以通过在if / else块之后添加以下语句来设置代码隐藏中的SelectCommand属性:
ds1.SelectCommand = res;
然后您可以从标记代码中删除表达式:
<asp:SqlDataSource ID="ds1" runat="server"
ConnectionStrings="<%ConnectionStrings.ConnStr%>" />
答案 1 :(得分:1)
你应该像在msnd上的Using Parameters with the SqlDataSource Control文章一样使用它。
如果您只是追加这样的字符串,那么您将会遇到SQL注入漏洞。
答案 2 :(得分:0)
以编程方式为SelectCommand
编译SqlDataSource
:
ds1.SelectCommand = res;
res
是您的命令文本。