用户选择Combobox然后根据数据库MS Access c#标签
Posted
技术标签:
【中文标题】用户选择Combobox然后根据数据库MS Access c#标签【英文标题】:user selection Combobox then to Labels according to database MS Access c# 【发布时间】:2021-05-27 12:40:13 【问题描述】:我在下面有以下代码,我试图做的是在组合框中有来自我的数据库的“ID”,这个 ID 代表管理员用来创建的每个调查详细信息,因此当用户查看他们单击的调查时在组合框中的调查编号上,标签将根据数据库而变化。我用下面的代码尝试了它,但不幸的是,它似乎所做的只是随机获取一个,如果有人可以提供帮助,那就太棒了。不一定要像下面这样,只要有效就行,
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
try
con.Open();
string query = "SELECT * FROM tbl_newsurvey ";
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = query;
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
string name = reader["txtname"].ToString();
lblname.Text = name;
con.Close();
catch (Exception ex)
MessageBox.Show("Error" + ex);
【问题讨论】:
我认为您应该在查询中使用WHERE
子句,以便根据ComboBox Selected Item
从数据库中获取数据
@AndreiSolero 是这样的吗? string query = "SELECT * FROM tbl_newsurvey WHERE ID= ' " + comboBoxID.Text + "'";
是的,这就是您使用组合框从数据库中检索数据的方式
另外,我建议你使用参数化查询来避免 SQL 注入
你能告诉我你会怎么做吗?
【参考方案1】:
您可以尝试使用 Combobox 从数据库中搜索数据
我使用参数化查询来避免
SQL Injection
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
try
con.Open();
string query = "SELECT * FROM tbl_newsurvey WHERE [ColumnName] = @ComboBoxValue";
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = query;
cmd.Parameters.AddWithValue("@ComboBoxValue", comboBox1.SelectedIndex.ToString())
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read() == true)
string name = reader["txtname"].ToString();
lblname.Text = name;
con.Close();
catch (Exception ex)
MessageBox.Show("Error" + ex);
【讨论】:
以上是关于用户选择Combobox然后根据数据库MS Access c#标签的主要内容,如果未能解决你的问题,请参考以下文章
MS-Access 2013;根据多记录形式的记录数据更改组合框选项