【问题标题】:check if db status is correct then dosomething检查数据库状态是否正确然后做某事
【发布时间】:2012-12-30 12:52:45
【问题描述】:

我不确定为什么代码不起作用。 如果 rStatus = Reserve 显示预订详情 if rStatus = cancelled show label.text 及以下

什么不工作: 当我进入例如下的页面时。 user="ben12" 此用户有预订但没有出现预订,而是显示用户没有预订,如果用户预订状态被取消,则会发生这种情况。

我进一步检查了在 user="ben12" 下它有几个取消和保留状态,我不确定这是否是 if 语句不起作用的原因


我的目标是,如果用户有预订,则显示预订,否则

此代码在我的 Reservation.aspx.cs 的Page_Load

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;
}

【问题讨论】:

  • 什么不起作用?您是否尝试过调试和检查值?
  • @boomer 当我进入例如下的页面时。 user="ben12" 此用户有预订但没有出现预订,而是显示用户没有预订,如果用户预订状态被取消,则会发生这种情况。我进一步检查了在 user="ben12" 下它有几个取消和保留状态,我不确定这是否是 if 语句不起作用的原因。
  • karthi diff 用户有不同的保留,比如@UserId 用于识别用户是否有任何资源
  • 您需要为@UserId 添加参数,因此它会是cmd.AddWithValue(@UserId, strUserId);,因为初学者也不要假设任何事情..将代码包装在 try{}catch{}
  • Malcolm 这段代码需要认真清理,而且你需要调试,不要只写代码和 GO...

标签: c# asp.net ms-access if-statement conditional-statements


【解决方案1】:

问题是你的会话名称,在这里:

Session["rsStatus"] = rdr["rStatus"]; // store the current status

应该是srStatus

【讨论】:

  • 你好,刚改了,问题还是一样
  • if 语句中存在冲突,我相信正如提到的 user="ben12" 它有几个取消和保留状态
  • 如果取消并且有剩余的保留项目,我不确定它会如何反应 阅读器应该返回值“保留”或“取消”
  • 您是否调试了解决方案以查看 rdr["rStatus"] 包含的内容?
  • 是的,我确实调试过它没有显示任何值
猜你喜欢
  • 2023-03-18
  • 2011-05-24
  • 1970-01-01
  • 2018-06-03
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 2014-04-29
相关资源
最近更新 更多