DataSet选择Where条件

时间:2012-03-26 15:08:22

标签: asp.net gridview dataset

我有一个DataSet,我希望能够根据用户进行的搜索选择Where Where Condition并将数据绑定回GridView。

DataRow[] result = mainData.Tables[0].Select("Last_Name like '%Knitter%'");

如何将此结果存储回DataSet并将其绑定到GridView,或者如何将DataRow结果绑定到GridView?

提前感谢您的帮助。

更新

其实我觉得我明白了。我所要做的就是:

 mainData.Tables[0].Select("Last_Name like '%Knitter%'").CopyToDataTable();

3 个答案:

答案 0 :(得分:2)

其实我觉得我明白了。我所要做的就是:

mainData.Tables[0].Select("Last_Name like '%Knitter%'").CopyToDataTable();

答案 1 :(得分:1)

您可能想尝试:

DataView dv = mainData.Tables[0].DefaultView;
dv.RowFilter = "Last_Name like '%Knitter%'";
gridView.DataSource = dv;
gridView.DataBind();

答案 2 :(得分:1)

您应该Encapsulate the logic位于中心位置,并且应该使用Extension methods重复使用该部分。检查FilterDataTableDataTable Class下直接使用的方式,而不继承它。

public static class GetData
{
    public static DataTable FilterDataTable(this DataTable Dt, string str)
    {
        using (DataView Dv = new DataView(Dt))
        {
            Dv.RowFilter = str;
            return Dv.ToTable();
        }
    }
}

using (DataTable dt = new DataTable())
{
    using (DataColumn DC = new DataColumn())
    {
        DC.ColumnName = "Abc";
        dt.Columns.Add(DC);

        DataRow Dr = dt.NewRow();
        Dr["Abc"] = "a";
        dt.Rows.Add(Dr);

        Dr = dt.NewRow();
        Dr["Abc"] = "b";
        dt.Rows.Add(Dr);

        using (DataTable Result = dt.FilterDataTable("Abc = 'a'"))
        {

        }
    }
}