SqlDataReader
개체의 값을 switch
문 또는 그와 관련된 문에 전달하는 데 문제가 있습니다. 짧게는 직원 테이블에서 해당 역할을 나타내는 컬럼을 읽는 것입니다. 적절한 도구가 제공되기 위해서는 역할이 무엇인지 알아야합니다. 내가 스위치를 밟을 무렵에, rec는 비어 있습니다.SqlDataReader에서 값 가져 오기 및 스위치 또는 if 문으로 전달
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 번째 열 (또는 인덱스가 0 일 경우 6 번째 열)에 포함 되었습니까? –
'rec'는 datareader의 마지막 값을 반환합니다. 그것은 당신이 원하는 가치입니다, 그렇죠? – TriV