1

MSSQL では、次のように電話番号でクエリをフィルタリングできます。

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

データソースでこれを行う方法を見つけようとしています。通常のクエリは次のようになります。

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

ただし、データソースにはハイフンを含む値があるため、結果は見つかりません。REPLACE は、フィルタリングの有効な引数ではありません。

最初に考えたのは、MSSQL ビューを更新してハイフンを削除することでした。ただし、表示するには、ハイフンを表示したいと思います。一部の電話番号は米国とは異なる国である可能性があるため、それらがすべて同じに見えるとは限りません。

電話番号をフィルタリングしてハイフンを無視する別の方法はありますか?

4

1 に答える 1

0

ハイフンを無視するフィルターを(最初のクエリのように)直接設定できるとは思わないbinding source. フィルター式の列では文字列操作はできません。このhttp://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.filter.aspxから許可される唯一の文字列操作は+.

ただし、ハイフンを含む元の列を保持して表示し、表示しない別の列 (ハイフンなし) を追加して、フィルター処理のみに使用することができます。

MSSQLを使用すると、たとえば、 REPLACE関数を使用する計算列を追加できます。

計算列の作成に役立ついくつかのリンクを次に示します。

お役に立てれば。

于 2013-05-31T17:52:44.403 に答える