我在将SqlDataReader
对象的值传递给switch
语句时遇到问题 - 或者其他任何问题。缺少的是我正在从员工表中读取列,显示他们的角色。为了向他们展示适当的工具,我需要知道他们的角色是什么。当我按下开关时,rec为空。
using (SqlCommand readEmployeeRecords = con.CreateCommand()) {
readEmployeeRecords.CommandText = "select * from dbo.Employee where employeeID = @employeeID and password = @password;";
var empID = new SqlParameter("employeeID", employeeID);
var pass = new SqlParameter("password", password);
readEmployeeRecords.Parameters.Add(empID);
readEmployeeRecords.Parameters.Add(pass);
using (SqlDataReader reader = readEmployeeRecords.ExecuteReader()) {
string rec = "";
while (reader.Read()) {
rec = reader.GetString(5);
}
switch (rec) {
case "Busboy":
BusboyForm bus = new BusboyForm();
bus.Show();
break;
case "Waiter":
WaiterForm wait = new WaiterForm();
wait.Show();
break;
}
}
答案 0 :(得分:0)
我没有足够的代表发表评论,所以答案就足够了。
根据您提供的代码,rec
在到达您的switch语句时仍会包含该值。
案例区分大小写,您确定'Busboy'
在表格中而不是'BusBoy'
吗?此外,您的表格是否在字符串中返回了额外的空格,即'BusBoy '
?
听起来你正在触及switch语句的default
情况,因此无法获得预期的行为。