2014-09-03 48 views
-3

我是c#.net winforms应用程序的新手。我有一个数据网格,它会显示一些数据,并将列中的某一列作为下拉列表或组合框。我如何在我的代码中使用它。请帮忙。在网格视图中的组合框/下拉列表c#.net

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    DataGridViewComboBoxColumn combo = (DataGridViewComboBoxColumn)dataGridView1.Rows[e.RowIndex].Cells[3].OwningColumn; 
    sql = "select NAME FROM Suppliers"; 
    BindingSource bsource = new BindingSource(); 
    bsource.DataSource = obj.SqlDataTable(sql); 
    dataGridView1.DataSource = bsource; 
    combo.HeaderText = "Select Supplier"; 
} 

我想填充从相应的供应商table.The数据网格视图与供应商名称的数据网格的第三列已经填入了数据从连接查询和领域之一是供应商(WCH我mwant转换为下拉菜单或组合框)。让我知道你是否需要任何进一步的澄清信息。

 I Modified my code as follows: 

     DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn(); 
     combo.HeaderText = "Suppliers"; 
     //execute sql data adapter to get supplier values 
     DataTable dt = obj.SqlDataTable("select NAME from CUSTOMERS"); 
     foreach (DataRow supplier in dt.DataSet.Tables[0].Rows) 
     { 
      combo.Items.Add(supplier[0]); 
     } 
     dataGridView1.Columns.Add(combo); 

现在在 “dt.DataSet.Tables [0] .Rows” 得到一个空引用异常。 plz帮助。我不确定是否缺少某些东西。

+0

你需要查找如何使用ItemTemplate里是一个好的开始它并不难,我不使用任何项目模板 – MethodMan 2014-09-03 20:11:56

+0

。我只是将网格视图拖放到我的winform中,并基于复杂的连接查询填充网格视图。 – psk 2014-09-03 20:16:19

回答

0

试试这个代码

string strcon = @"Data Source=kp;Initial Catalog=Name;Integrated Security=True;Pooling=False"; 
     SqlConnection con; 
     SqlCommand cmd; 
     SqlDataAdapter da; 
     DataTable dt; 
     DataGridViewComboBoxColumn dgvCmb; 
     public Form2() 
     { 
      InitializeComponent(); 
      grdcmd(); 
     } 
     public void grdcmd() 
     { 
      con = new SqlConnection(strcon); 
      con.Open(); 
      string qry = "Select * from Dbname"; 
      da = new SqlDataAdapter(qry, strcon); 
      dt = new DataTable(); 
      da.Fill(dt); 
      dgvCmb = new DataGridViewComboBoxColumn(); 
      foreach (DataRow row in dt.Rows) 
      { 
       dgvCmb.Items.Add(row["Fname"].ToString()); 
      } 
      dataGridView1.Columns.Add(dgvCmb); 
     } 
+0

谢谢。我修改了我的代码,如上所示。我得到一个空引用异常,我不知道如果我错了某些地方。 – psk 2014-09-04 14:07:39

+0

你在哪里得到空例外 – Kishan 2014-09-05 04:39:24

+0

请看我更新的代码 – Kishan 2014-09-05 06:57:25