2016-02-21 4 views
0

я делаю DataGridViews этого кодомDataGridView - колонка изменения в комбобокс

sda = new SqlDataAdapter("SELECT id, acc_name, acc1_company, acc1_no, acc1_type, acc2_company, acc2_no, acc2_type FROM accounting", con); 
       dt = new DataTable(); 
       sda.Fill(dt); 

       dataGridView1.DataSource = dt; 
       dataGridView1.Columns[0].Visible = false; 
       dataGridView1.Columns[1].HeaderText = "Name"; 
       dataGridView1.Columns[2].HeaderText = "Company 1"; 
       dataGridView1.Columns[3].HeaderText = "Accounts 1"; 
       dataGridView1.Columns[4].HeaderText = "Type 1"; 
       dataGridView1.Columns[5].HeaderText = "Company 2"; 
       dataGridView1.Columns[6].HeaderText = "Accounts 2"; 
       dataGridView1.Columns[7].HeaderText = "Type 2"; 

Что я хочу, это изменение колонка 4 и 7 к Combobox, с данными из другой таблицы в моей базе данных.

Как это возможно =

ответ

1

Попробуйте что-то вроде этого:

dataGridView1.AutoGenerateColumns = false; 

DataTable dt = new DataTable(); 
dt.Columns.Add("Name", typeof(String)); 
dt.Columns.Add("Money", typeof(String)); 
dt.Rows.Add(new object[] { "Hi", 100 }); 
dt.Rows.Add(new object[] { "Ki", 30 }); 

DataGridViewComboBoxColumn money = new DataGridViewComboBoxColumn(); 
var list11 = new List<string>() { "10", "30", "80", "100" }; 
money.DataSource = list11; 
money.HeaderText = "Money"; 
money.DataPropertyName = "Money"; 

DataGridViewTextBoxColumn name = new DataGridViewTextBoxColumn(); 
name.HeaderText = "Name"; 
name.DataPropertyName = "Name"; 

dataGridView1.DataSource = dt; 
dataGridView1.Columns.AddRange(name, money); 

Просто используйте DataPropertyName вместо ValueMember

От this answer.

Смежные вопросы