C #: Wie zwei Werte in ComboBox von Stored Procedure hinzufügen

stimmen
0

Ich habe zwei Fragen, zunächst , wie zwei Werte hinzuzufügen und die zweite ist: Wenn wir zwei Werte addieren , so dass wir den Code ändern müssen , wenn wir sparen combo-boxWert in der Datenbank (zweite Frage mit Code frage ich auch von einem Ende dieser Frage)?

Ich brauche zwei Werte aus der Tabelle hinzufügen dep_Idund dep_Namein `ComboBox; so was:

(Department ID: Department Name) 

Dies ist die gespeicherte Prozedur:

CREATE PROCEDURE [dbo]. SelectComoboxData_SP
AS
    SELECT dep_Id, dep_Name 
    FROM department

    RETURN 0

Dies ist der C # -Code:

public void updateDepartmentList()
{
    refresh_DataGridView();

    SqlCommand cmd = new SqlCommand(SelectComoboxData_SP, con);
    cmd.CommandType = CommandType.StoredProcedure;

    con.Open();

    try
    {
        SqlDataReader dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            com_boxDepartment.Items.Add(dr[dep_Id]);
            com_boxDepartment.SelectedIndex = 0;
        }

        dr.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(<<<INVALID SQL OPERATION \n + ex);
    }

    con.Close();
}

Lassen Sie mich auch wissen, wenn ich eine Abteilung aus der Combobox auswählen, so jetzt habe ich diesen Code

cmd.Parameters.AddWithValue(@dId, com_boxDepartment.Text);

für von ID zu speichern, so dass, wenn zwei Werte in Combobox hinzufügen, damit wir etwas ändern müssen?

Veröffentlicht am 20/10/2018 um 12:48
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Wenn es meine C # wäre, würde ich es eher wie dieses tun (obwohl ich stark typisierte Datasets verwenden würde)

public void updateDepartmentList()
{
    refresh_DataGridView();

    SqlCommand cmd = new SqlCommand("SelectComoboxData_SP", con);
    cmd.CommandType = CommandType.StoredProcedure;

    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);

    com_boxDepartment.DataSource = dt;
    com_boxDepartment.DisplayMember = "dep_Name";
    com_boxDepartment.ValueMember = "dep_Id";
}

Ihre Combo wird „History Department“ zum Beispiel zeigen, aber wenn Sie es für die fragen , .SelectedValuewird er zurückkehren zB 2 (die ID für die Geschichte Abteilung)

Beantwortet am 20/10/2018 um 19:15
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more