C #: как добавить 2 значения в ComboBox из хранимой процедуры - PullRequest
0 голосов
/ 20 октября 2018

У меня ДВА вопроса, во-первых, как добавить 2 значения, а во-вторых: если мы добавим 2 значения, нам нужно изменить код при сохранении значения combo-box в базе данных (второй вопрос с кодом, который я также задаю с концаэтот вопрос)?

Мне нужно добавить 2 значения из таблицы dep_Id и dep_Name в `ComboBox;как это:

(Department ID: Department Name) 

Это хранимая процедура:

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

    RETURN 0

Это код C #:

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

Дайте мне знать, когда я выберу любойотдел из выпадающего списка, так что теперь я написал этот код

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

для сохранения по идентификатору, поэтому, когда добавить 2 значения в выпадающий список, нам нужно что-то изменить?

1 Ответ

0 голосов
/ 20 октября 2018

Если бы это был мой C #, я бы сделал это больше так (хотя я бы использовал строго типизированные наборы данных)

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

Например, в вашей комбо-версии будет отображаться «Отдел истории», но когда вы спроситедля .SelectedValue будет возвращено, например, 2 (идентификатор отдела истории)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...