C#開発-コンボボックス制御データバインディング(15.11)

I.概要

  • Windowsアプリケーションの多くのコントロールはDataSourceプロパティを提供し、DataSetまたはDataTableの値がこのプロパティに直接割り当てられるため、データベースからクエリされたデータをコントロールに表示できます。

  • 一般的に使用されるデータバインドコントロールには、テキストボックス(TextBox)、ラベル(Label)、リストボックス(ListBox)、コンボボックス(ComboBox)、データグリッド(DataGridView)などがあります。

データバインディングのアプリケーションを説明する例として、コンボボックスコントロールを取り上げましょう。

<!-もっと->

2つのビジュアルデータバインディング

ComboBoxコントロール(ComboBox)は、Windowsフォームアプリケーションで一般的に使用されるコントロールです。たとえば、州および地方自治体の情報、専攻、本の種類、部屋の種類などを保存するために使用されます。

Windowsフォームアプリケーションで視覚的なデータバインドおよびコードを使用してデータをバインドするためのメソッドを提供します。

2.1コンボボックスコントロールをバインドする

  • データバインディングのショートカット次の図に示すように、データバインディングを使用して、コンボボックスコントロールを直接バインドし、コンボボックスの[ "]アイコンをクリックして、[コンボボックスタスク]メニューポップアップします。

     

  • 次の図に示すように、[データバインディングアイテムを使用する]チェックボックスを選択して、[データバインディングモード]メニューを表示します。

    メニュー内:

    • [データソース]コンボボックスは、データベースに接続するデータテーブルを選択するために使用されます。これは、コントロールのDataSourceプロパティを設定するのと同じです。

    • 「メンバーの表示」コンボボックスは、コンボボックスに表示される列名を設定するために使用されます。これは、コンボボックスのTextプロパティから取得できます。

    • 「Valuemember」コンボボックスは、コンボボックスの非表示の値を設定するために使用されます。これは、コンボボックスのValueプロパティから取得できます。

    • 選択値コンボボックスは、コンボボックスで選択値が使用する列名を設定するために使用されます。

2.2コードを使用してコンボボックスをバインドする

データバインドコントロールによって設定されるプロパティと同様に、コードを使用してコンボボックスのデータソース、表示メンバー、値メンバーなどを設定する必要があります。

具体的な設定事項は以下のとおりです。

コンボボックスオブジェクト。DataSource= DataTableオブジェクト
//
コンボボックスコンボボックスオブジェクトの表示メンバープロパティを
設定します
。DisplayMember=列名//コンボボックスコンボボックスオブジェクトの値メンバープロパティを設定します。ValueMember=列名

3つの例

3.1例1:Windowsフォームアプリケーションを作成し、専門家の情報を表示するコンボボックスを設定し、専門家の名前の列として「メンバーの表示」、専門家の番号として「値のメンバー」、「コンピューター」として「選択された値」を設定します。 「」

3.1.1トピックの要件に従って、最初に専門的な情報テーブルを作成します。テーブルのステートメントは次のとおりです。

テーブルメジャーを作成します
    id intプライマリキーidentity(1,1)、
    name varchar(20)unique 
);

3.1.2データソースタイプの選択

コンピューター、英語、オートメーション3の専門情報をテーブルに追加します。[ComboEoxタスク]メニューからデータバインド項目を設定します。最初に[データソース]コンボボックスを選択し、[プロジェクトデータソースの追加]リンクをクリックすると、次の図がポップアップ表示されます。表示されるダイアログボックス

 

3.1.3データベースモデルの選択

「データベース」オプションを選択し、「次へ」ボタンをクリックして、以下のダイアログボックスを表示します。

 

3.1.4データセットの選択

[データセット]オプションを選択します。接続文字列には機密情報が格納されるため、ユーザーがインターフェイスで選択できる2つのラジオボタンがあります。ここで、[はい、接続文字列に機密データを含める]ラジオボタンを選択します。 「次へ」ボタンをクリックします

 

3.1.5接続情報を構成ファイルに保存します

接続文字列の名前を設定することも、接続文字列を保存しないことを選択することもできます。保存された接続文字列は、次にデータベース接続を確立するときに使用できます。

 

3.1.6データベースオブジェクトの選択

 

3.1.7設定後の効果

 

3.1.8操作効果

 

3.2例2コードを使用してコンボボックスをバインドして専門家の名前を表示すると、各オプションを切り替えた後、コンボボックスで現在選択されている値を表示するメッセージボックスがポップアップ表示されます

3.2.1コード

//フォーム読み込みイベント
    privatevoid 
ComboBoxForm_Load(object sender、EventArgs e)
{ 
    //データソース接続文字列string connStr = "Data Source =。; Initial Catalog = test; User ID = sa; Password = root"; 
    // SqlConnectionを作成します
    SqlConnectionのインスタンスconn = null; 
    try 
    { 
        conn = new SqlConnection(connStr); 
        //データベースを
        開くconn.Open(); 
        string sql = "select * from major"; 
        // 
        SqlDataAdapterクラスのオブジェクトを作成するSqlDataAdaptersda = new SqlDataAdapter( sql、conn); 
        // DataSetクラスのオブジェクトを作成します
        DataSetds 
        = new DataSet(); 
        // SqlDataAdapterオブジェクトsdaを使用して、新しい検索結果をDataSetオブジェクトに入力しますds sda.Fill(ds);
        //コンボボックスのDataSourceプロパティを設定します
        comboBox1.DataSource = ds.Tables [0]; 
        //コンボボックスのDisPlayMemberプロパティを設定しますcomboBox1.DisplayMember 
        = "name"; 
        //コンボボックスのValueMemberプロパティを設定しますcomboBox1.ValueMember 
        = "id" ; 
    } 
    catch(Exception ex)
    { 
        MessageBox.Show( "エラーが発生しました!" + ex.Message); 
    }
    最終的に
    { 
        if(conn!= null)
        { 
            //データベース接続を閉じます
            conn.Close(); 
        } 
    } 
}

3.2.2コンボボックスのオプション変更イベント

private void comboBox1_SelectedIndexChanged(object sender、EventArgs e)
{ 
    if(comboBox1.Tag!= null)
    { 
        //コンボボックスに表示される値を取得
        string name = comboBox1.Text; 
        //メッセージボックスをポップアップします
        MessageBox.Show( "You selectedメジャーは: "+名前); 
    } 
}

 

3.2.3説明

実際の作業では、コードバインディングの使用方法が最も適用され、一方ではコードの柔軟性を反映し、他方ではコードの移植性も向上させます。

おすすめ

転載: blog.csdn.net/Calvin_zhou/article/details/108080103
おすすめ