3

(VS 2010 C# 网站)我有 TextBox1 来过滤 SQL 数据库中将显示在 Datagrid 中的 FirstNames,但我无法找出将用户输入从“TextBox1.Text”链接到 WHERE 子句的正确方法用于 Datagrid 过滤。我试过了:

SelectCommand="SELECT * FROM [TestName] WHERE ([TestFirstName] LIKE '%' + TextBox1.Text + '%')"
4

4 回答 4

1
SelectCommand="SELECT * FROM [TestName] WHERE ([TestFirstName] LIKE '%' + @TestFirstName2 + '%')">
    <SelectParameters>
        <asp:ControlParameter ControlID="TextBox1" Name="TestFirstName2" 
            PropertyName="Text" Type="String" />
    </SelectParameters>
于 2012-07-02T18:58:13.440 回答
0

试试这个:

SelectCommand="SELECT * FROM [TestName] WHERE ([TestFirstName] LIKE '%" + TextBox1.Text + "%')" 

注意 + TextBox1.Text + 周围的引号。您上面的示例似乎正在寻找文字字符串 TextBox1.Text,而不是 TextBox1.Text 的实际值。

于 2012-06-18T20:46:03.187 回答
0
SelectCommand = "SELECT * FROM [TestName] WHERE ([TestFirstName] LIKE '% " + TextBox1.Text + "%')";
于 2012-06-18T20:47:07.160 回答
0

如果您使用 SqlDataSource 或 ObjectDataSource 将数据绑定到数据网格,则可以简单地将 WHERE 子句放入正在使用的 DataSource 的“FilterExpression”属性中。

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            string filterstr = "";

            if (this.tbSearchEmpID.Text.Trim() != String.Empty)
            {
                filterstr += "EmpId LIKE '%" + this.tbSearchEmpID.Text.Trim() + "%'";
            }

            this.ObjectDataSource1.FilterExpression = filterstr;
        }
于 2012-06-18T20:50:54.600 回答