从 SqlDataReader 检索值并传递给 switch 或 if 语句

Retrieve Value from SqlDataReader and Pass to switch or if statement

我在将值从 SqlDataReader 对象传递到 switch 语句时遇到问题 - 或与此相关的任何事情。不足的是,我正在阅读一位员工 table 的专栏,其中显示了他们的角色。为了向他们提供合适的工具,我需要知道他们的角色是什么。当我按下开关时,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;
       }
}

我没有足够的代表来 post 评论,所以一个答案就足够了。

根据您提供的代码,rec 在到达您的 switch 语句时仍会包含该值。

区分大小写,您确定 'Busboy' 在 table 而不是 'BusBoy' 中吗?此外,您的 table return 字符串中是否有额外的空格,即 'BusBoy '?

听起来您遇到了 switch 语句的 default 情况,因此没有得到预期的行为。