2013-04-04 55 views
-1

我有一個文本框和一個按鈕。我試圖做的是過濾一個gridview的數據已被搜索。我要搜索的兩個字段是customerID和CustomerName。Dataview Rowfilter

我的代碼:

Dim GetAllCusts As New BusinessLayer.Customer 
Dim dt As DataTable = GetAllCusts.GetCustomers 
Dim dv As New DataView(dt) 

dv.RowFilter = String.Format("CustomerID='{0}' Or CustomerName='{0}'", SearchTextbox.Text) 

gridview1.DataSource = dv 
gridview1.DataBind() 

當客戶ID一切正常搜索。當搜索客戶名稱時,我得到「無法對System.Int32和System.String執行'='操作。」。

我試着CONVERT(CustomerName,System.String)但沒有解決,但我認爲這導致我離開了最初的問題,因爲我開始猜測。

我想有一個文本框來搜索客戶ID和客戶名稱。 RowFilter有什麼問題,它如何解決?

謝謝

+0

爲什麼在近4年後有人在沒有解釋的情況下降低了我的問題? – Computer 2017-02-28 15:14:23

回答

4

您有一個概念性問題。或者你搜索一個數字或者你搜索一個字符串。
我認爲你應該以這種方式

Dim custID as Integer 
if Int32.TryParse(SearchTextbox.Text, custID) Then 
    ' CustomerID is a numeric field - no need to use single quotes' 
    dv.RowFilter = String.Format("CustomerID={0}", custID) 
else 
    ' CustomerName is a string. Use single quotes and double the ' 
    ' possible single quotes inside the search box' 
    dv.RowFilter = String.Format("CustomerName='{0}'", SearchTextbox.Text.Replace("'", "''") 
End If 
gridview1.DataSource = dv 
+0

是的,這是要走的路。 – sloth 2013-04-04 11:23:38

0

改變你的代碼,我猜CutomerId是一個整型字段,當你試圖尋找一個名稱是您正在查找的整型字段與字符串字段字符串值。

相關問題