我遇到了一個問題,將SqlDataReader
對象的值傳遞給switch
語句 - 或者其他任何事情。簡而言之,我正在閱讀顯示其角色的員工表中的專欄。爲了向他們呈現適當的工具,我需要知道他們的角色是什麼。當我打開開關時,rec是空的。從SqlDataReader中檢索值並傳遞給開關或者語句
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;
}
}
你執行的查詢是什麼?該查詢是否提取了任何記錄? –
'rec'包含'DBNull'還是隻有在賦值爲'GetString'後纔是空字符串?你確定第5個(或第6個如果是零索引)列包含你想要獲取的正確的字符串? –
你的rec將返回datareader中的最後一個值。這是你想要的價值,對吧? – TriV