【问题标题】:how to read a yes/no data type from access db如何从访问数据库中读取是/否数据类型
【发布时间】:2013-01-19 16:46:41
【问题描述】:

以下代码来自res.aspx.cs 我无法从该代码行导致我的错误的字段中读取任何内容:

  strStatus = rdr["rStatus"].ToString();

protected void Page_Load(object sender, EventArgs e)
        {

                OleDbConnection mDB = new OleDbConnection();
                mDB.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data source="
                + Server.MapPath("~/App_Data/Database.accdb");
                OleDbCommand cmd; OleDbDataReader rdr;
                string strUserId = (string)Session["sUserId"];
                string strStatus;
                string strSql = "SELECT rStatus FROM Reservation WHERE rUserId =" + strUserId
               + " ORDER BY rStatus DESC;";
                cmd = new OleDbCommand(strSql, mDB);
                cmd.Parameters.Add("@UserId", OleDbType.Char).Value = strUserId;
                mDB.Open();
                rdr = cmd.ExecuteReader();
                strStatus = rdr["rStatus"].ToString();
            while (rdr.Read() == true)




                //  string strRStatus = (string)Session["srStatus"];
                //   while (rdr.Read() == true) 

                if (strStatus == "-1")
                {


                    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"];

                }
                else
                {
                    lblReserve.Visible = false;
                    Label1.Visible = true;
                    Label2.Visible = true;
                    DetailsView1.Visible = true;
                    btnBuy.Visible = true;
                    DropDownList1.Visible = true;
                    btnCancel.Visible = true;

                }
            }

【问题讨论】:

  • 在致电Read() 之前不要访问阅读器。

标签: c# asp.net boolean ms-access-2007


【解决方案1】:

尝试移动

strStatus = rdr["rStatus"].ToString();

在你打电话后

rdr.Read()

编辑: 如果你想读取一个 SQL 位值,你可以使用阅读器上的方法GetBoolean

bool myBoolean;
if (!rdr.IsDBNull(columnIndex))
    myBoolean = rdr.GetBoolean(columnIndex);

【讨论】:

  • 不起作用我不确定如何为 strStatus 声明我的变量,因为数据库中的数据类型是布尔值
  • 亲爱的@MalcolmNathanielNg,我添加了一个关于如何使用阅读器读取布尔数据的简短sn-p。
  • 如何从 res 表中读取我的列 rStatus 我的列索引是什么?
  • 您的列索引为 0,因为您只选择一列。
猜你喜欢
  • 2015-03-26
  • 2021-08-13
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2019-02-25
相关资源
最近更新 更多