2017-05-31 7 views
0

Ich habe eine WinForm-App. Auf dem Load() des Formulars führe ich den folgenden Code aus, um den Dropdown-Inhalt einer ComboBox in einem DataGridView auf dem Formular zu laden. Wenn das Formular geladen und angezeigt wird, wird nichts angezeigt. Was habe ich verpasst?Hinzufügen von Elementen zu einer DataGridView ComboBox

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

haben Sie den Debugger verwendet ..? Hat 'cTable' Daten? Nachschlagen der 'DataSource and DataMember' der ComboBox-Eigenschaft sowie – MethodMan

+0

keine Daten in Carrier-Tabelle? –

Antwort

0

versuchen Vielleicht das Array in der Konsole ausdrucken, dass die Daten aus der Datenbank zu einem Array zuweisen, zuerst dann, um zu sehen, ob die Daten auch aus der Datenbank korrekt gesammelt wird.

Zweitens, wenn die obige Methode funktioniert, dann können Sie eher das Array verwenden, um in der Dropdown-Kombination wie so zu laden:

Erstellen Sie eine andere Klasse für die Get- und Set-Methoden:

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

dann in eine Schleife ein Array durch eine Liste zu füllen:

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(); 
} 

danach die Combobox bevöl von:

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 :/ 
    } 
} 

einen Versuch wert, denke ich?

Verwandte Themen