2017-05-31 3 views
0

J'ai une application WinForm. Sur Load() du formulaire, j'exécute le code ci-dessous dans le but de charger le contenu du menu déroulant d'un contrôle ComboBox dans un DataGridView sur le formulaire. Lorsque le formulaire est chargé et affiché, rien n'apparaît. Qu'ai-je manqué?Ajouter des éléments à un DataGridView ComboBox

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

avez-vous utilisé le débogueur ..? Est-ce que 'cTable' contient des données? recherche 'DataSource et DataMember' de la propriété ComboBox ainsi que – MethodMan

+0

aucune donnée dans la table Carrier? –

Répondre

0

Peut-être essayer assignant que les données de la base de données à un tableau d'abord, puis imprimer le tableau dans la console pour voir si les données sont même collectées à partir de la base de données correctement.

En second lieu, si la méthode ci-dessus fonctionne, vous pouvez plutôt utiliser ce tableau pour charger dans la zone de liste déroulante déroulant comme ceci:

Créer une classe différente pour les méthodes get et set:

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

ensuite, utilisez une boucle pour remplir un tableau dans une liste:

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

Après la comboBox peupler par:

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

Ça vaut le coup d'essayer?