获取 ComboBox 中值的 ID
Posted
技术标签:
【中文标题】获取 ComboBox 中值的 ID【英文标题】:Get ID of value in a ComboBox 【发布时间】:2021-11-14 00:41:40 【问题描述】:我已将如下数据带入组合框中。在我的“BRANDS”表中,第一列为brand_id,第二列为brand_name。我在组合框中获取名称,但是在将其保存到数据库时需要获取 id。我该怎么做?
void markaekle()
SqlCommand komut = new SqlCommand("Select * from MARKALAR", bgl.baglanti());
SqlDataReader dr = komut.ExecuteReader();
while (dr.Read())
comboBoxMarka.Properties.Items.Add(dr[1]);
bgl.baglanti().Close();
我需要使用如下按钮将 id 值保存到数据库中:
private void BtnAnaGrupKaydet_Click(object sender, EventArgs e)
SqlCommand komut = new SqlCommand("INSERT INTO ANA_GRUP (marka_id,anagrup_isim,create_date) values (@p1,@p2,@p3)", bgl.baglanti());
komut.Parameters.AddWithValue("@p1", int.Parse(comboBoxMarka.Text));
komut.Parameters.AddWithValue("@p2", txtAnaGrup.Text);
komut.Parameters.AddWithValue("@p3", dateAnaGrup.DateTime);
komut.ExecuteNonQuery();
bgl.baglanti().Close();
MessageBox.Show("Ana Grup Sisteme Eklendi", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
【问题讨论】:
WinForms WPF???? 是的,WinForms。对不起,我忘了添加 【参考方案1】:你可以做很多实现。
使用Dataset 并在执行查询后,您可以用结果填充数据集。所以你的数据集中有你所有的数据。 (定义您的全局数据库),然后当您的按钮点击时,您知道选择了组合框的哪个索引。 index 是数据集的索引,因此您可以访问 id。
最简单的方法是使用带有 ID 和名称的 Dictionary。之后同上。
总而言之,您需要有一个全局变量来存储查询结果的 Id 和 Name。此变量可以是字典或数据集或 ....
【讨论】:
【参考方案2】:为了获得选定的值而不是文本。你可以像下面这样绑定组合框:
List<DropDownKeyValue> list = new List<DropDownKeyValue>();
List.Add(new DropDownKeyValue
ID = 1,
Name = "Designation"
);
cmbSortBy.DisplayMember = "Name";
cmbSortBy.ValueMember = "ID";
cmbSortBy.DataSource = list;
要获得您将使用的选定 ID:cmbSortBy.SelectedValue
对象。
DropDownKeyValue
类:
public class DropDownKeyValue
public int ID get; set;
public string Name get; set;
【讨论】:
【参考方案3】:您需要将 ComboBox 绑定到 DataSource。最简单的方法是按照以下方式修改代码:
SqlDataReader dr = komut.ExecuteReader();
var dt = new DataTable();
dt.Load(dr);
yourComboBox.DataSource = null;
yourComboBox.Items.Clear();
yourComboBox.DisplayMember = "brand_name";
yourComboBox.ValueMember = "brand_id";
yourComboBox.DataSource = dt;
您现在可以使用 yourComboBox.SelectedValue 访问 id。
【讨论】:
【参考方案4】:在下面的行中更改值,例如。
komut.Parameters.AddWithValue("@p1",int.Parse(comboBoxMarka.SelectedValue.ToString()));
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于获取 ComboBox 中值的 ID的主要内容,如果未能解决你的问题,请参考以下文章