簡體   English   中英

用於Datagridview的VB.NET BindingSource篩選器

[英]VB.NET BindingSource filter for Datagridview

在MSSQL中,我可以像這樣過濾電話號碼上的查詢:

where replace(phone,'-','') Like '%480555%'

我試圖弄清楚如何在數據源上執行此操作。 普通查詢如下所示:

Dim stringFilter As String = String.Empty
String.Format("phone Like '%480555%'")
ViewCustomersBindingSource.Filter = stringFilter

但是,這將找不到任何結果,因為數據源中包含帶連字符的值。 REPLACE不是有效的過濾參數。

我最初的想法是更新MSSQL視圖以去除連字符。 但是,為了顯示,我想顯示連字符。 我無法假設它們看起來都一樣,因為某些電話號碼可能與美國不在同一個國家/地區。

還有另一種方法可以過濾電話號碼並忽略連字符嗎?

我不認為您可以直接設置一個過濾器來忽略binding source上的連字符(如您的第一個查詢)。 過濾器表達式列中無法進行字符串操作。 在此http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.filter.aspx中 ,唯一允許的字符串操作是+

但是,您可以保留並顯示包含連字符的原始列,並添加不顯示但僅用於過濾的另一列(不帶連字符)。

使用MSSQL ,您可以例如添加一個使用REPLACE函數的計算列

以下是一些可以幫助您創建計算列的鏈接:

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM