c#データセットへのDatagridviewバインドをフィルタリングする方法-アクセントインセンティブ

KTG

DataGridViewバインドがありDataSet、一部の値(名前)にアクセントがあり(例:é、í、ž、ć、é、á)、アクセントの影響を受けないフィルタリングを実行します。

通常、私は次のDataGridViewようにフィルタリングしています。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    MyDataSet.People.DefaultView.RowFilter = "Name LIKE '%" + textBox1.Text + "%'";
    dataGridView1.DataSource = MyDataSet.People.DefaultView;
}

私は自分のデータベースでこれを変更しようとしました:

CREATE TABLE [dbo].[People] (
[Num]        INT           NOT NULL,
[Name]     NVARCHAR (50) NOT NULL
);

これで

CREATE TABLE [dbo].[People] (
[Num]        INT           NOT NULL,
[Name]     NVARCHAR (50) COLLATE Latin1_General_CI_AI NOT NULL
);

変更しようとしました:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    MyDataSet.People.DefaultView.RowFilter = "Name LIKE '%" + textBox1.Text + "%' COLLATE Latin1_General_CI_AI";
    dataGridView1.DataSource = MyDataSet.People.DefaultView;
}

しかし、それは機能しません。

アレクサンダーペトロフ

私は次の決定を提供することができます。

NameWithoutAccentという名前のデータテーブルの新しい列に追加します

MyDataSet.People.Columns.Add("NameWithoutAccent", typeof(string));

この列に、アクセントを削除した値を入力します。この列によってフィルタリングが行われます。

foreach (DataRow row in MyDataSet.People.Rows)
{
    string name = (string)row["Name"];
    string nameWithoutAccent = RemoveAccent(name);
    row["NameWithoutAccent"] = nameWithoutAccent;
}

まず、String.Normalizeメソッド使用して、文字列を正規化し、アクセントを削除します次に、正規表現を使用してすべての発音区別符号を削除します。MあるUnicodeのカテゴリは、「すべての分音記号」。

public string RemoveAccent(string name)
{
    string normalizedName = name.Normalize(NormalizationForm.FormD);
    string pattern = @"\p{M}";
    string nameWithoutAccent = Regex.Replace(normalizedName, pattern, "");
    return nameWithoutAccent;
}

データバインディング後にこの列を非表示にします。

dataGridView1.Columns["NameWithoutAccent"].Visible = false;

入力フィルターもアクセントから削除されます。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    string nameWithoutAccent = RemoveAccent(textBox1.Text);
    MyDataSet.People.DefaultView.RowFilter = "NameWithoutAccent LIKE '%" + nameWithoutAccent + "%'";
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リアクティブエクステンションタイマー/インターバルリセット

分類Dev

Bokeh:2つのインタラクティブウィジェットを使用してCustomJSでデータセットをフィルタリングする

分類Dev

光沢のあるRでのリアクティブデータセットのフィルタリング

分類Dev

オブジェクトへのデータバインディング-データソースの変更をキャンセルする方法

分類Dev

ブートストラップのインラインスタイリング-カルーセルアクティブインジケーター

分類Dev

テンプレートを使用したアダプティブカード選択セットテンプレートへのデータのバインド

分類Dev

ハンドセットへのアクティビティをタブレットへのフラグメントに変換するには

分類Dev

フィルタリング後のリアクティブテーブルデータへのアクセス

分類Dev

Android Studio-タブ付きアクティビティフラグメントをデフォルトビューにリセットする方法は?

分類Dev

テストアセンブリパターンを配置しているにもかかわらず、テストアセンブリがVSTS Azureビルドパイプラインでフィルタリングされないのはなぜですか?

分類Dev

アセットバージョンの衝突を防ぐために、R-マークダウンテンプレートヘッダーインクルードをフィルタリングするにはどうすればよいですか?

分類Dev

Excel vba 4ステップでアクティブセルをインクリメントする方法は?

分類Dev

Androidデータバインディングのクラスからパブリック静的フィールドをインポートする方法

分類Dev

モバイルアプリケーションクライアントのバックエンドdjangoにCSRFセキュリティを使用する方法

分類Dev

Haxe:抽象フィールドアクセスメソッドとのバインディングパターン

分類Dev

Haxe:抽象フィールドアクセスメソッドとのバインディングパターン

分類Dev

セル編集イベント時にアクティブなデータグリッドの名前を取得しますか?

分類Dev

インタラクティブセッションなしでKerberosクライアントをインストールする

分類Dev

インタラクティブな popviewcontroller ゲストのためのアンワインド セグエ

分類Dev

メイン レポートでテーブル データセット フィールド値を使用する

分類Dev

インターネットセキュリティルールを介したEC2インスタンスへのアクセス

分類Dev

OnetoOneモデルのフィールドでクエリセットをフィルタリングする

分類Dev

オブジェクトインスタンスの特性フィールドへのアクセス

分類Dev

VSTSエージェントインタラクティブモードのアクティブセッションを停止/再開します

分類Dev

DjangoAdminで外部キーフィールドのクエリセットをフィルタリングする方法

分類Dev

セマンティック-タイトルのUIアコーディオンボタン

分類Dev

Django:非アクティブなセッションのタイムアウトを検出する方法は?

分類Dev

AngularJSディレクティブ/コンポーネントパラメーター:バインディングまたはDOMアクセス?

分類Dev

ng-modelディレクティブによる値のバインドをインターセプトする方法

Related 関連記事

  1. 1

    リアクティブエクステンションタイマー/インターバルリセット

  2. 2

    Bokeh:2つのインタラクティブウィジェットを使用してCustomJSでデータセットをフィルタリングする

  3. 3

    光沢のあるRでのリアクティブデータセットのフィルタリング

  4. 4

    オブジェクトへのデータバインディング-データソースの変更をキャンセルする方法

  5. 5

    ブートストラップのインラインスタイリング-カルーセルアクティブインジケーター

  6. 6

    テンプレートを使用したアダプティブカード選択セットテンプレートへのデータのバインド

  7. 7

    ハンドセットへのアクティビティをタブレットへのフラグメントに変換するには

  8. 8

    フィルタリング後のリアクティブテーブルデータへのアクセス

  9. 9

    Android Studio-タブ付きアクティビティフラグメントをデフォルトビューにリセットする方法は?

  10. 10

    テストアセンブリパターンを配置しているにもかかわらず、テストアセンブリがVSTS Azureビルドパイプラインでフィルタリングされないのはなぜですか?

  11. 11

    アセットバージョンの衝突を防ぐために、R-マークダウンテンプレートヘッダーインクルードをフィルタリングするにはどうすればよいですか?

  12. 12

    Excel vba 4ステップでアクティブセルをインクリメントする方法は?

  13. 13

    Androidデータバインディングのクラスからパブリック静的フィールドをインポートする方法

  14. 14

    モバイルアプリケーションクライアントのバックエンドdjangoにCSRFセキュリティを使用する方法

  15. 15

    Haxe:抽象フィールドアクセスメソッドとのバインディングパターン

  16. 16

    Haxe:抽象フィールドアクセスメソッドとのバインディングパターン

  17. 17

    セル編集イベント時にアクティブなデータグリッドの名前を取得しますか?

  18. 18

    インタラクティブセッションなしでKerberosクライアントをインストールする

  19. 19

    インタラクティブな popviewcontroller ゲストのためのアンワインド セグエ

  20. 20

    メイン レポートでテーブル データセット フィールド値を使用する

  21. 21

    インターネットセキュリティルールを介したEC2インスタンスへのアクセス

  22. 22

    OnetoOneモデルのフィールドでクエリセットをフィルタリングする

  23. 23

    オブジェクトインスタンスの特性フィールドへのアクセス

  24. 24

    VSTSエージェントインタラクティブモードのアクティブセッションを停止/再開します

  25. 25

    DjangoAdminで外部キーフィールドのクエリセットをフィルタリングする方法

  26. 26

    セマンティック-タイトルのUIアコーディオンボタン

  27. 27

    Django:非アクティブなセッションのタイムアウトを検出する方法は?

  28. 28

    AngularJSディレクティブ/コンポーネントパラメーター:バインディングまたはDOMアクセス?

  29. 29

    ng-modelディレクティブによる値のバインドをインターセプトする方法

ホットタグ

アーカイブ