How to get data from SQL database for storage in a combo box - C #

How can I get the outlet ID value on a comboBox? here is my code to get the values ​​from the database and save it in the combo box.

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

My database

Thank you for your help!

+5
source share
3 answers

you install:

 cmdoutletID.Visible = false; 

what makes combobox invisible

You should install it as follows:

 cmdoutletID.Visible = true; 

After adding the images, the column name is outletID and Not outletID so change your code as follows:

 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; } } 
0
source

The combo box has two properties that determine where it loads the data:

 DisplayMember ValueMember 

The "ValueMember" property determines which named field fills the ListItem "ValueProperty". That way, when you do combobox.SelectedItem.Value , you get the value stored in the named field that you specified for "ValueProperty".

Assuming you're sure your query returns strings, maybe try adding items "manually" rather than relying on automatic data binding.

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

Try the following:

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

To capture the selected value, for example, by pressing a button:

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

Source: https://habr.com/ru/post/1241833/


All Articles