【问题标题】:Visual Basic: DataTable.Search filter argsVisual Basic:DataTable.Search 过滤器参数
【发布时间】:2016-04-04 15:12:03
【问题描述】:

我正在尝试搜索 SQL 记录表,以查找并提取那些字段与我的条件匹配的记录。

字段名称是 ID,它是一个 13 位的代码,在 SQL 本身中存储为 Integer。我需要通过 ID 字段的前六位(不是主键字段)搜索每条记录。

下面是代码:

Dim results As DataSet.DataRow() = DataSet.DataTable.Select("LEFT(ID,6) = 123456")

这是错误信息:

The expression contains undefined function call LEFT().

我怀疑问题出在 SQL 过滤器中的 LEFT 函数上 - 因为如果我运行 .Select on,例如“ID = some-ID-value”,相应的记录会正确返回。

使用 .Select() 时可能无法识别 SQL 函数?或者我应该使用 CAST?

【问题讨论】:

标签: mysql sql sql-server vb.net datatable


【解决方案1】:

另一种方法是使用现有的 DataTable 创建一个 DataView;应用过滤器并将过滤后的行放入另一个数据表中。这是安全代码。

 DataView dataView = new DataView(DataSet.DataTable);
 dataView.RowFilter = "ID LIKE '123456%'";
 var filtredData = dataView.ToTable();

【讨论】:

  • 没有意识到你在 vb.net;希望您可以转换为等效代码
  • 最好解释一下你在这里做什么。
  • 谢谢!这行得通。这是VB中的解决方案: Dim results As DataSet.DataRow() = DataSet.DataTable.Select("ID LIKE '%123456%'")
  • 在开头和结尾添加百分比将检查 ID 中任何位置的数字,但不仅仅是在开头...
猜你喜欢
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多