2015-12-30 33 views
0

我试图通过记录的SQL表进行搜索以查找并提取其字段符合我的条件的记录。Visual Basic:DataTable.Search筛选器参数

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

下面是代码:

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

以下是错误消息:

The expression contains undefined function call LEFT(). 

我怀疑问题是在SQL过滤器LEFT函数 - 因为如果我跑。选择例如,“ID = some-ID-value”,则相应的记录被正确地返回。使用。选择()时

也许SQL函数不认可?或者,也许我应该使用CAST?

+0

您使用的是SQL Server还是MySQL?它们不是同一件事。 – Siyual

+0

[DataTable的选择条件表达式(https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx)语法和 – Plutonix

回答

1

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

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

没有意识到你是在vb.net支持的话;希望你可以转换成等效代码 – techspider

+0

更好地解释你在这里做什么。 –

+0

补充说明 – techspider