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番目(ゼロインデックスの場合は6番目)の列に含まれていることを確認してください。 –
'rec'はdatareaderの最後の値を返します。それはあなたが望む価値なのですよね? (SqlCommandオブジェクトreadEmployeeRecords = con.CreateCommand())を使用して – TriV