ASP.NET过滤器列运行时的SQL数据源

时间:2013-09-03 10:28:10

标签: c# asp.net .net sql

我正在尝试使用ASP.NET构建示例网页,这是我的第一次尝试。

我不知道如何解释这个,但无论如何这里是

在设计时间

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AAAAConnectionString %>" 
        SelectCommand="SELECT [ABC], [firstname], [lastname], [companyname], [email], [phone], [fax] FROM [XYZ]">
    </asp:SqlDataSource>

在运行时我想过滤select命令中的列(比如名字和姓氏)

4 个答案:

答案 0 :(得分:2)

您可以使用SqlDataSource.FilterExpression属性

  

获取或设置Select时应用的过滤表达式   方法被称为。

例如;

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:AAAAConnectionString %>" 
     SelectCommand="SELECT [ABC], [firstname], [lastname], [companyname], [email], [phone], [fax] FROM [XYZ]"
     FilterExpression="firstname ='Adhithya' and lastname = 'lyer'">
</asp:SqlDataSource>

答案 1 :(得分:1)

你可以通过代码

来做到这一点
var sql = "SELECT [ABC], [firstname], [lastname], [companyname], [email], [phone], [fax] FROM [XYZ]";
if (condition)
{
    sql = "SELECT [firstname], [lastname] FROM [XYZ]";
}
SqlDataSource1.SelectCommand = sql;
gvS.DataBind(); 

答案 2 :(得分:1)

使用SqlDataSource并使用LIKE条件创建2个参数并使其默认值为% 以下是一个TextBox的示例:

    <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:CosmicConnectionString %>' SelectCommand="SELECT [ItemGroupId], [GroupNameArabic], [GroupNameEnglish] FROM [CategoriesView] WHERE ([GroupNameEnglish] LIKE '%' + @GroupNameEnglish + '%')">
        <SelectParameters>
            <asp:ControlParameter ControlID="txtFilter" PropertyName="Text" DefaultValue="%" Name="GroupNameEnglish" Type="String"></asp:ControlParameter>
        </SelectParameters>
    </asp:SqlDataSource> 

答案 3 :(得分:0)

您是否可以使用DropDownList.SelectedIndexChanged()来重新获取和绑定数据,然后使用DropDownList.SelectedValue来确定要选择/可见的列?