簡體   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