C# 用户选择组合框,然后根据数据库MS Access c创建标签
我有下面的代码,我试图做的是在组合框上有我的数据库的ID,这个ID代表管理员用来创建的每个调查细节,所以当用户去查看调查时,他们点击组合框中的调查编号,标签将根据数据库而改变。我用下面的代码进行了尝试,但不幸的是,它似乎只抓取了一个随机的,如果有人能帮助的话,那将是令人惊讶的。它不必像下面那样,只要它能工作C# 用户选择组合框,然后根据数据库MS Access c创建标签,c#,ms-access,combobox,C#,Ms Access,Combobox,我有下面的代码,我试图做的是在组合框上有我的数据库的ID,这个ID代表管理员用来创建的每个调查细节,所以当用户去查看调查时,他们点击组合框中的调查编号,标签将根据数据库而改变。我用下面的代码进行了尝试,但不幸的是,它似乎只抓取了一个随机的,如果有人能帮助的话,那将是令人惊讶的。它不必像下面那样,只要它能工作 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try {
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);
}
}
您可以尝试使用组合框从数据库中搜索数据 我使用参数化查询来避免SQL注入
我认为应该在查询中使用WHERE子句,根据所选的组合框从数据库中获取数据Item@AndreiSolero像这样的?字符串查询=从tbl_newsurvey中选择*,其中ID='+comboBoxID.Text+';是的,这就是使用ComboBox从数据库检索数据的方法,但我建议您使用参数化查询来避免SQL注入您能告诉我您将如何做到这一点吗?
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);
}
}