我正在尝试在标签中显示SQL查询结果,但它没有显示。用户从下拉列表中选择一个值,标签应填充结果。这是我的代码:
protected void drpEmployeeName_SelectedIndexChanged(object sender, EventArgs e)
{
String connString = ConfigurationManager.ConnectionStrings["HRPlannerConnectionString1"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
string result = "SELECT EmployeeName from Employees WHERE EmployeeID= '" + drpEmployeeName.SelectedItem.Value + "'";
SqlCommand showresult = new SqlCommand(result, conn);
conn.Open();
lblEmployee.Text = showresult.ExecuteScalar().ToString();
conn.Close();
}
请帮忙!
答案 0 :(得分:0)
"的AutoPostBack"您的下拉列表的属性可能未设置或设置为" false"。将其更改为" true"。另外用户sql命令参数而不是直接将用户选择的值插入到查询中。这将阻止SQL注入。
尝试以下代码
protected void drpEmployeeName_SelectedIndexChanged(object sender, EventArgs e)
{
String connString = ConfigurationManager.ConnectionStrings["HRPlannerConnectionString1"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
string result = "SELECT EmployeeName from Employees WHERE EmployeeID=@empID";
SqlCommand showresult = new SqlCommand(result, conn);
showresult.Parameters.AddWithValue("@empID",drpEmployeeName.SelectedItem.Value);
conn.Open();
lblEmployee.Text = showresult.ExecuteScalar().ToString();
conn.Close();
}
答案 1 :(得分:0)
确保您的函数drpEmployeeName_SelectedIndexChanged
已执行。您可以通过在函数内部放置一个调试点来验证它。
如果代码没有开始,你的下拉选择列表可能有auto_postback =“false”。将其更改为true。
或者您的IndexChange过程可能会被无线连接(连接到不同的控件?)。只需删除代码并创建一个新代码。
还要确保您实际上是从数据库返回一个值。