【问题标题】:How to Filter rows in a DataView如何过滤 DataView 中的行
【发布时间】:2016-06-28 20:14:07
【问题描述】:

我有一个DataGrid,它使用DataView 作为源。我的 DataView 中有 81 条记录。我只想过滤具有大于或等于用户输入的项目的Item_Number 的行。这就是我所拥有的,但它没有过滤我的行。

PrintView.RowFilter = "Item_Number >= 'val'";
PrintView.RowStateFilter = DataViewRowState.ModifiedCurrent;

dgPrintTicket.DataSource = PrintView;
BindDataGrid();

PrintView 是我的数据视图。当我在过滤行后调试和检查行时,它显示没有任何变化。 PrintView 保持不变。

【问题讨论】:

  • 单引号之间的val是一个文字字符串而不是变量val的值(如果存在的话)

标签: c# asp.net visual-studio-2008 webpage


【解决方案1】:

问题在于引用变量 ('val'),而您应该像下面这样假设 val 是在您的代码中声明的局部变量。

PrintView.RowFilter = "Item_Number >=" + val;

根据您的编辑,valstring/VARCHAR 类型列,因此需要像这样引用

PrintView.RowFilter = "Item_Number >= '" + val + "'";

然后不知道为什么要在 VARCHAR 列中执行 >= 比较。

【讨论】:

  • 当我这样做时,我收到一条错误消息“找不到列 [F77730]”。那是我的字符串“val”中的项目编号。
  • @hmakled,val 变量的值是多少?
  • 值为“F77730”。这是表中的项目编号。
  • @hmakled,那么它应该可以正常工作。尝试回答 PrintView.RowFilter = "Item_Number >= '" + val + "'"; 中的编辑版本
  • 我也试过了。不过滤任何东西。奇怪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 2016-09-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多