2016-12-15 2 views
0

Ich erhalte Daten aus der Datenbank meines Kombinationsfeld aufzufüllen, kann so sagen, dass ich Daten wie diese:Kombinationsfeld wählen Sie den Punkt durch Id aber angezeigten Namen

|Column ID | Column Name | 
|  1 |  Item1 | 
|  2 |  Item2 | 
|  3 |  Item3 | 

So jetzt i Column Name bin immer und Combo bevöl Box mit ihm, aber jetzt von einer anderen Funktion Ich bin Combobox ausgewählten Element ändern und was ich will ist, während Combo-Box zu ID aus der Datenbank zuweisen, so wenn ich Combobox ausgewählten Artikel zu ID 3 zu ändern, ändern Sie es zu Artikel 3

+1

'.DisplayMember = "Name"' und '.ValueMember = "Id"' – Plutonix

+0

@Plutonix können Sie sei genauer? – Parpil

+0

Verwenden Sie ein Datentabelle mit den DB-Werten als Datenquelle – Plutonix

Antwort

0

Ich dachte mir es. Hier ist die Antwort:

divizija.DisplayMember = "Column Name"; 
divizija.ValueMember = "Column Id"; 

List<Items> items = new List<Items>(); 
FbDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    items.Add(new Items { Id = (int)dr[0], Name = (string)dr[1]}); 
}  
divizija.DataSource = items; 
divizija.SelectedValue = divizijaDokumenta; 

Und nach Artikeln Liste i Klasse brauchen, und hier ist es

public class Items 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 
0

Sie brauchen keine Klasse benötigen oder eine Liste von db-Daten zu erstellen. Ein DataTable wird gut funktionieren:

string sql = "SELECT Id, Descr FROM ccolor"; 

using (MySqlConnection dbcon = new MySqlConnection(MySQLConnStr)) 
using (MySqlCommand cmd = new MySqlCommand(sql, dbcon)) 
{ 
    DataTable dt = new DataTable(); 
    dbcon.Open(); 

    // fill the datatable 
    dt.Load(cmd.ExecuteReader()); 

    // set up cbo 
    cboColor.DisplayMember = "Descr"; 
    cboColor.ValueMember = "Id"; 
    cboColor.DataSource = dt; 
} 

Es braucht nicht einmal eine persistente Tabelle zu sein. Dann reagieren, auf die SelectedValueChanged Veranstaltung:

Console.WriteLine("The value of {0} is {1}", cboColor.Text, cboColor.SelectedValue); 

Der Wert von Orange ist 5

Verwandte Themen