2016-01-29 6 views
5

Wie kann ich den Wert von outlet ID es auf einer ComboBox bekommen? Hier ist mein Code, um die Werte aus der Datenbank abzurufen und in einer Combobox zu speichern.Wie man Daten von der SQL-Datenbank erhält, um in einem Kombinationsfeld zu speichern - C#

public partial class Addstock : Form 
{ 
    String connectionString = ConfigurationManager.ConnectionStrings["TCConnectionString"].ConnectionString; 
    List<BOStockTransfer> StockList = new List<BOStockTransfer>(); 
    int updateIndex = -1; 

    public Addstock() 
    { 
     InitializeComponent(); 
    } 

    private void Addstock_Load(object sender, EventArgs e) 
    { 
     loadstock(); 
     GetOutlets(); 
     Getproduct(); 
     GetGetWH(); 
     cmdoutletID.Visible = false; 
     lbloutid.Visible = false; 
     cmdwh.Visible = false; 
     lblwh.Visible = false; 
    } 

    private void GetOutlets() 
    { 


     BOStockTransfer obj_StockTransfer = new BOStockTransfer(); 
     DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString); 

     if (ds_OutletList.Tables[0].Rows.Count != 0) 
     { 
      cmdoutletID.DataSource = ds_OutletList.Tables[0]; 
      cmdoutletID.DisplayMember = "outletId"; 
     } 

    } 

My Database

Vielen Dank für Ihre Hilfe!

+0

Was ist das Ergebnis? Erhalten Sie Fehler? – Minh

+0

Ich kann Werte der Ausgangs-ID in der Kombinationsfeld –

+0

nicht sehen Was willst du? Welchen Fehler hast du? Bitte seien Sie spezifisch. – AnhTriet

Antwort

0

Sie setzen:

cmdoutletID.Visible = false; 

was die Combobox unsichtbar

Sie macht es wie folgt festzulegen:

cmdoutletID.Visible = true; 

Nachdem Sie die Bilder hinzugefügt, der Spaltenname ist outletID und nicht outletId so ändern Sie Ihren Code wie folgt:

private void GetOutlets() 
    { 
    BOStockTransfer obj_StockTransfer = new BOStockTransfer(); 
    DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString); 

    if (ds_OutletList.Tables[0].Rows.Count != 0) 
    { 
     cmdoutletID.DataSource = ds_OutletList.Tables[0]; 
     cmdoutletID.DisplayMember = "outletID"; 
     cmdoutletID.ValueMember = "outletID"; 
     cmdoutletID.Enabled = true; 

    } 

} 
+0

Dank für Ihre Hilfe danken, aber immer noch nicht warking –

+0

@ChathuraKanchana ich meine Antwort bearbeitet, mir zu sagen, ob es – Karamafrooz

+0

immer noch nicht funktioniert –

0

Das Kombinationsfeld hat zwei Eigenschaften, die bestimmen, wo es lädt Daten von:

DisplayMember 

ValueMember 

Die „Valuemember“ Eigenschaft definiert, das Feld mit dem Namen der „Valueproperty“ der ListItem auffüllt. Wenn Sie combobox.SelectedItem.Value tun, erhalten Sie den Wert, der in dem benannten Feld gespeichert ist, das Sie für "ValueProperty" angegeben haben.

Vorausgesetzt, dass Sie sicher sind, dass Ihre Abfrage Zeilen zurückgibt, versuchen Sie vielleicht, die Elemente "manuell" hinzuzufügen, anstatt sich auf automatische Datenbindung zu verlassen.

private void GetOutlets() 
{ 
    BOStockTransfer obj_StockTransfer = new BOStockTransfer(); 
    DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString); 

    cmdoutletID.DisplayMember = "outletId"; 
    cmdoutletID.ValueMember = "pkID"; 
    cmdoutletID.BeginUpdate(); 
    try 
    { 
     cmdoutletID.Items.Clear(); 
     foreach (var row in ds_OutletList.Tables[0].Rows) 
      cmdoutletID.Items(new { outletid = row["outletid"], pkID = row["primaryKeyIDFieldName"] }); 

    } 
    finally { cmdoutletID.EndUpdate(); } 
} 
+0

Fehler 'System.Windows.Forms.ComboBox' enthält keine Definition für 'DataBind' und keine Erweiterungsmethode 'DataBind' akzeptiert ein erstes Argument vom Typ 'System.Windows.Forms.ComboBox' könnte gefunden werden –

+0

Sorry, anscheinend habe ich zu viel ASP.NET-Entwicklung gemacht. Sie haben Recht, dass Windows.Forms-Steuerelemente keine explizite 'DataBind()' -Methode implementieren. Ich werde meine Antwort aktualisieren. –

0

Try this:

BOStockTransfer obj_StockTransfer = new BOStockTransfer(); 
     DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString); 

     if (ds_OutletList.Tables[0].Rows.Count != 0) 
     { 
      cmdoutletID.DataSource = ds_OutletList.Tables[0]; 
      cmdoutletID.DisplayMember = "outletname"; 
      cmdoutletID.ValueMember = "outletId"; 
     } 

Um gewählten Wert zu erfassen, zum Beispiel auf die Schaltfläche klicken:

protected button1_Click(object o, EventArgs e) 
{ 
    var selectedId = cmboutletID.SelectedValue; 
MessageBox.Show(selectedId); 
} 
Verwandte Themen