我有一个组合框连接到一个显示员工姓名首字母的数据库。现在,如果我选择一个首字母,我想要一个标签来显示属于该首字母的员工的姓名。
我的代码出了什么问题?
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(constr);
SqlCommand cmd1 = new SqlCommand("SELECT Prename FROM Employee WHERE Initials=@Initials", conn);
cmd1.Parameters.Add(new SqlParameter("@Initials", comboBox1.SelectedIndex.ToString()));
SqlDataReader PrenameReader;
try
{
conn.Open();
PrenameReader = cmd1.ExecuteReader();
while (PrenameReader.Read())
{
string sPrename = PrenameReader["Prename"].ToString();
lblPrename.Text = sPrename;
}
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
提前致谢!
答案 0 :(得分:0)
这是我认为的问题
cmd1.Parameters.Add(new SqlParameter("@Initials", comboBox1.SelectedIndex.ToString()));
将其更改为
cmd1.Parameters.Add(new SqlParameter("@Initials", comboBox1.SelectedValue.ToString()));
或
cmd1.Parameters.Add(new SqlParameter("@Initials", comboBox1.SelectedText);
以适当的缩写为准。
此外,我不确定您将从该查询中获得多少值但是如果您希望第一个结果在您选择查询中使用Top 1
或者不读取所有数据,因为它只会获取最后一条记录的值