ASP.net DataView - 不能应用过滤器

时间:2012-03-20 18:57:58

标签: asp.net visual-studio webforms

我正在使用C#在asp.net中建立一个网站。

我正在尝试使用数据视图,因此我可以过滤数据集,然后返回到gridView。

问题在于它忽略了过滤器并只显示整个数据集。

这是我的代码(留下一些不那么令人困惑的部分)

public class CData
{
 private SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
 private DataSet ds= new DataSet();
 private SqlDataAdapter da;
 private DataView dv;
 private SqlCommandBuilder cb;

public CData()
{
 string sql = String.Format("SELECT * FROM table");
 da = new SqlDataAdapter(sql, cn);
 da.Fill(ds, "Table");
 dv= new DataView(ds.Tables["Table"]);
 cb = new SqlCommandBuilder(da);
}

public DataTable FilterByFk(Int32 FK)
 {
   dv.RowFilter = "FK = "+ FK;
   dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
   da.Update(ds, "Table");
   return ds.Tables["Table"];
 }
}
谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

我看不到你在哪里调用你的方法来过滤。此外,要正确应用RowFilter,您需要指定列的名称,后跟运算符和要过滤的值。将值包装在单引号中。请尝试以下方法:

dv.RowFilter = String.Format("FK = '{0}'", FK);