2016-06-20 9 views
3

申し訳ありませんが、これは愚かな質問です。私はこれでかなり新しいです。どのように私はdatatableにコンボボックスを追加し、それをdatagridviewにロードする必要がありますか?これはできますか?そしてこれが最善の方法ですか?これを行う方法に関するヒントとチュートリアルは高く評価されています。前もって感謝します。C# - どのようにdatagridviewのコンボボックスをdatatableに追加し、datagridviewでプレビューする必要がありますか?

   string[] columnNames = dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray(); 
       DataTable dt = new DataTable(); 
       dt.Columns.Add("ColA"); 
       dt.Columns.Add("ColB"); 
       dt.Columns.Add("ColC"); 

       for (int i = 0; i < columnNames.Count(); i++) 
       { 
        dt.Rows.Add(); 

        dt.Rows[i][0] = columnNames[i].ToString(); 

        //datatype 
        string sqlAllTables = "SELECT A, B FROM TB_LOOKUP"; 
        DataSet ds; 
        ds = databaseManager.GetData(sqlAllTables); 

        DataGridViewComboBoxCell combo = new DataGridViewComboBoxCell(); 
        combo.DataSource = ds.Tables[0]; 
        combo.DisplayMember = "A"; 
        combo.ValueMember = "B"; 
        dt.Rows[i][1] = combo; 

       } 

       dataGridView1.DataSource = dt; 

答えて

2

あなたはDataTableにコントロールを追加することはできません。

comboboxを表示する場合は、datagridviewに追加し、コンボボックスをデータにバインドする必要があります。

var column = new DataGridViewComboBoxColumn(); 
column.DataSource = ds.Tables[0]; 
column.DisplayMember = "A"; 
column.ValueMember = "B"; 
dataGridView1.Columns.Add(column); 

が、これは、我々は上記のコンボボックスを追加した列になり、第3列dt.Columns.Add("ColC");を追加しないでください。

+0

ありがとうございました。それは解決されました! – MRu

関連する問題