C #: jak přidat 2 hodnoty ComboBoxu z uložené procedury

hlasů
0

Mám dvě otázky, nejprve, jak přidat 2 hodnoty a druhá zní: pokud přidáme 2 hodnoty, takže musíme změnit kód, když šetříme combo-boxhodnotu do databáze (druhá otázka s kódem Také žádám od konce této otázky)?

Musím se přidat 2 hodnoty z tabulky dep_Ida dep_Namev `ComboBoxu; takhle:

(Department ID: Department Name) 

Toto je uložená procedura:

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

    RETURN 0

Jedná se o C # kód:

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

Dovolte mi také vědět, když jsem se vybrat libovolný útvar z comboboxu takže teď jsem napsal tento kód

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

pro ukládání podle ID, takže když se přidají 2 hodnot combobox takže musíme něco změnit?

Položena 20/10/2018 v 12:48
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Kdyby to byl můj C # udělal bych to spíš to (i když bych použít důrazně zadali datové sady)

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";
}

Váš combo ukáže „Historie oddělení“ například, ale když ho požádat, aby .SelectedValuese vrátí například 2 (id pro oddělení historie)

Odpovězeno 20/10/2018 v 19:15
zdroj uživatelem

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