2015-12-30 30 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