从组合框获取数据库ID

时间:2016-02-25 22:03:44

标签: c# sql winforms combobox

我遇到了问题。

Pressing button "Guardar"

我需要在2个组合框中获得id_subcategoria" 1"。我有这段代码:

void fill_cbsubcategoria(int masterId)
{
    cbsubcategoria.Items.Clear();
    cbproduto.Items.Clear();
    cbproduto.Text = "Escolha o produto";
    txtquantidade.Text = null;
    txtpreco.Text = null;
    txtiva.Text = null;
    try
    {
        con.Open();
        string Query = "select * from Subcategoria where id_categoria = @mid";
        SqlCommand createCommand = new SqlCommand(Query, con);
        createCommand.Parameters.AddWithValue("@mid", masterId);
        SqlDataReader dr = createCommand.ExecuteReader();

        while (dr.Read())
        {
            int id_subcategoria = (int)dr.GetInt32(0);
            string subcategoria = (string)dr.GetString(1);
            cbsubcategoria.Items.Add(id_subcategoria.ToString() + " - " + new SubCategoriaHolder(id_subcategoria, subcategoria));
        }
        con.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

当点击" Guardar"时,我需要有id_subcategoria。

private void btnguardar_Click(object sender, EventArgs e)
{
    try
    {
        con.Open();
        string Query = "insert into dbPAP.Produtos (id_subcategoria, nome_produto, quantidade, preco_unitario, iva, imagem)" + "values('" + "I NEED THAT ID FROM COMBOBOX" + this.txt_nproduto.Text + this.txtquantidade.Text + this.txtpreco.Text + this.txtiva.Text + "') ;";
        SqlCommand createCommand = new SqlCommand(Query, con);
        SqlDataReader dr = createCommand.ExecuteReader();
        MessageBox.Show("Adicionado com sucesso!");
        while (dr.Read())
        {

        }
        con.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

这是我的按钮保护代码。

注意:我不想从组合框中选择SelectedValue,我想从DataBase获取id_subcategoria。

1 个答案:

答案 0 :(得分:0)

只需将ID添加到数组List,同时将元素加载到组合框中,组合框中的Selected索引应引用List中的相应id