コードが機能しない理由がわかりません。rStatus = Reserve の場合、予約の詳細を表示します rStatus = Cancelled の場合、label.text を表示し、以下を表示します
何が機能していないか: たとえば、下のページに入ったとき。user="ben12" このユーザーには予約がありますが、予約が表示されず、ユーザーの予約ステータスがキャンセルされた場合に発生する予約がないことが示されます。
さらに確認したところ、user="ben12" の下にいくつかのキャンセル済みおよび予約済みのステータスがあることを確認しましたが、それが if ステートメントが機能しない理由であるかどうかはわかりません
私の目的は、ユーザーが予約を持っている場合は予約を表示し、そうでない場合は表示することです
このコードはPage_Load
、私の Reservation.aspx.cs の下にあります。
OleDbConnection mDB = new OleDbConnection();
mDB.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data source="
+ Server.MapPath("~/App_Data/IESDatabase.accdb");
OleDbCommand cmd;
OleDbDataReader rdr;
string strUserId = (string)Session["sUserId"];
string strSql = "SELECT rStatus FROM Reservation WHERE rUserId = @UserId "
+ "ORDER BY rStatus DESC;";
cmd = new OleDbCommand(strSql, mDB);
mDB.Open();
rdr = cmd.ExecuteReader();
rdr.Read();
Session["rsStatus"] = rdr["rStatus"]; // store the current status
mDB.Close();
if ((string)Session["srStatus"] == "Cancelled")
{
DetailsView1.Visible = false;
Label2.Visible = false;
btnBuy.Visible = false;
DropDownList1.Visible = false;
btnCancel.Visible = false;
lblReserve.Text = "There is no resevation for user " + Session["sUserId"];
}
if ((string)Session["srStatus"] == "Reserve")
{
lblReserve.Visible = false;
Label1.Visible = true;
Label2.Visible = true;
DetailsView1.Visible = true;
btnBuy.Visible = true;
DropDownList1.Visible = true;
btnCancel.Visible = true;
}