2017-05-13 4 views
1

基本的な質問 - コンボボックスにデータソースを設定してから、データソースへのリンクを切断することはできますか?これにより、最初に設定されたコンボボックスに影響を与えることなく、ds.Tables [0]を再利用することができます。コンボボックスを作成した後でデータソースをアンバインドします。

comboBox1.DataSource = ds.Tables[0]; 

+0

コンボボックスを直接データセットにバインドすることはあまりお勧めできません。何らかのコレクションや辞書のデータを取得し、代わりにバインドします。 – Yogi

+0

@ Yogiに感謝して、dsからコレクションへのコンボボックスへ? – Allstar

答えて

1

いいえ(DSは、SqlDataAdapterオブジェクトとMS SQLサーバから取り込まれる)、それはいくつかの方法でソース・データをコピーせずには不可能です。 DataSourceプロパティは、データセット、データテーブル、またはそのコピーではないオブジェクトの参照です。 DataSourceをnullに設定すると、コンボが参照されるデータを参照する可能性がなくなります。

は、代わりに、あなたは簡単のDataTableクラス

comboBox1.DataSource = ds.Tables[0].Copy(); 

に利用できる適切な方法を使用して、元のテーブルのコピーを作成することができますこれは、実際の構造と内容を持つテーブルの新しいコピーを作成しますが、それはあります第1のオブジェクトに格納された情報の別のメモリ領域にコピーする。この時点では、メモリ内に2つの異なるオブジェクトがあり、2番目のオブジェクトに影響を与えずに最初のオブジェクトを変更できます。

これは大きなテーブルではあまりスマートではないとも言いましょう。あなたのテーブルに明白な理由で多くのレコードが含まれている場合は、この方法を使用しないでください。

関連する問題