我有两个问题,第一个是如何添加2个值,第二个是:如果我们添加2个值,那么当我们将combo-box
值保存在数据库中时,我们需要更改代码(第二个问题是我也从代码中询问这个问题的结尾)?
我需要在ComboBox中的表dep_Id
和dep_Name
中添加2个值;像这样:
(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);
用于按ID保存,因此在组合框中添加2个值时,我们需要进行任何更改吗?
答案 0 :(得分:0)
如果是我的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(历史部门的ID)