繁体   English   中英

如何从SQL数据库中获取数据以存储到组合框中 - C#

[英]How to get data from SQL database to store in to a combo box - C#

如何在组合框中获取插座ID的值? 这是我从数据库中获取值并将其存储在组合框中的代码。

public partial class Addstock : Form
{
    String connectionString = ConfigurationManager.ConnectionStrings["TCConnectionString"].ConnectionString;
    List<BOStockTransfer> StockList = new List<BOStockTransfer>();
    int updateIndex = -1;

    public Addstock()
    {
        InitializeComponent();
    }

    private void Addstock_Load(object sender, EventArgs e)
    {
        loadstock();
        GetOutlets();
        Getproduct();
        GetGetWH();
        cmdoutletID.Visible = false;
        lbloutid.Visible = false;
        cmdwh.Visible = false;
        lblwh.Visible = false;
    }

    private void GetOutlets()
    {


        BOStockTransfer obj_StockTransfer = new BOStockTransfer();
        DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString);

        if (ds_OutletList.Tables[0].Rows.Count != 0)
        {
            cmdoutletID.DataSource = ds_OutletList.Tables[0];
            cmdoutletID.DisplayMember = "outletId";
        }

    }

我的数据库

谢谢您的帮助!

你在设置:

cmdoutletID.Visible = false;

是什么让组合框看不见

你必须按如下方式设置它:

cmdoutletID.Visible = true;

添加图像后,列名称为outletID而不是outletId因此请按以下方式更改代码:

private void GetOutlets()
    {
    BOStockTransfer obj_StockTransfer = new BOStockTransfer();
    DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString);

    if (ds_OutletList.Tables[0].Rows.Count != 0)
    {
        cmdoutletID.DataSource = ds_OutletList.Tables[0];
        cmdoutletID.DisplayMember = "outletID";
        cmdoutletID.ValueMember = "outletID";
        cmdoutletID.Enabled = true;

    }

}

组合框有两个属性,用于确定从何处加载数据:

DisplayMember

ValueMember

“ValueMember”属性定义哪个命名字段填充ListItem的“ValueProperty”。 这样,当你执行combobox.SelectedItem.Value ,您将获得存储在为“ValueProperty”指定的命名字段中的值。

假设您确定您的查询正在返回行,可能尝试“手动”添加项目,而不是依赖于自动数据绑定。

private void GetOutlets()
{
    BOStockTransfer obj_StockTransfer = new BOStockTransfer();
    DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString);

    cmdoutletID.DisplayMember = "outletId";
    cmdoutletID.ValueMember = "pkID";
    cmdoutletID.BeginUpdate();
    try
    {
        cmdoutletID.Items.Clear();
        foreach (var row in ds_OutletList.Tables[0].Rows)
            cmdoutletID.Items(new { outletid = row["outletid"], pkID = row["primaryKeyIDFieldName"] });

    }
    finally { cmdoutletID.EndUpdate(); }
}

尝试这个:

BOStockTransfer obj_StockTransfer = new BOStockTransfer();
        DataSet ds_OutletList = obj_StockTransfer.GetOutlets(connectionString);

        if (ds_OutletList.Tables[0].Rows.Count != 0)
        {
            cmdoutletID.DataSource = ds_OutletList.Tables[0];
            cmdoutletID.DisplayMember = "outletname";
            cmdoutletID.ValueMember = "outletId";
        }

要捕获所选值,例如按下按钮:

protected button1_Click(object o, EventArgs e)
{
  var selectedId =  cmboutletID.SelectedValue;
MessageBox.Show(selectedId);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM