2017-05-31 40 views
0

我有一个WinForm应用程序。在窗体的Load()我正在运行下面的代码,试图在窗体上的DataGridView中加载ComboBox的下拉内容。当表单加载并显示时,不显示任何内容。我错过了什么?添加项目到一个DataGridView组合框

using (DataTable cTable = _SQLConnection.GetData("SELECT Name FROM Carrier")) 
{ 
    foreach (DataRow row in cTable.Rows) 
    { 
     Carrier.Items.Add(row[0].ToString()); 
    } 
} 
+0

你使用过调试器..? 'cTable'里面有数据吗??查找ComboBox属性的'DataSource和DataMember'以及 – MethodMan

+0

Carrier表中没有数据? –

回答

0

也许尝试首先从数据库中的数据分配给一个数组,然后打印出在控制台中的数组,看看数据甚至被从数据库中收集正确。

其次,如果上述方法的工作,那么你可以,而使用数组加载到下拉组合框,如下所示:

创建get和set方法不同的类:

public class getData{ 
    public string Col1 { get; set; } 
    public int Col2 { get; set; } 
} 

然后使用一个循环,以填补在列表中的阵列:

0123:

getData[] allData = null; 
string sql = @"SELECT col1, col2 FROM Carrier"; 
using (var command = new SqlCommand(sql, con)) 
{ 
con.Open(); 
using (var reader = command.ExecuteReader()){ 
    var list = new List<getData>(); 
    while (reader.Read()) 
     list.Add(new getData{ Col1 = reader.GetString(0), Col2 = 
     reader.GetString(1) }); 
    allData = list.ToArray(); 
} 

然后通过填充组合框

using (DataTable cTable = _SQLConnection.GetData("SELECT Name FROM Carrier")){ 
    foreach (2ndClassname class1 in 2ndClassName.allData){ 
    ComboBox.Items.Add(class1.COLUMNNAME);//I am unaware of how many columns your database has :/ 
    } 
} 

值得一试我猜?