从数据库中检索位值

时间:2012-11-17 06:22:33

标签: c# sql-server

当我尝试从数据库中获取位值时,它会出错。以下代码如下:

SqlCommand cmd = new SqlCommand("SELECT ISADMIN FROM USER_DETAILS WHERE USER_NAME=@User AND ISPASSWORD=@Pass", con);
cmd.Parameters.AddWithValue("@User", cbUserName.Text);
cmd.Parameters.AddWithValue("Pass", txtPassword.Text);

SqlDataReader dr = cmd.ExecuteReader();

b = (bool)dr["ISADMIN"];//*Here it gives error

错误:

  

无数据时无效尝试读取。

2 个答案:

答案 0 :(得分:5)

您必须先在数据阅读器上调用Read()

using(SqlDataReader dr = cmd.ExecuteReader())
{
    while(dr.Read())
    {
         //now read the value(s)
    }
}

如果你确定会有一个结果, 使用ExecuteScalar()将是一种更好的方法:

b = (bool)cmd.ExecuteScalar();

答案 1 :(得分:2)

你必须调用SqldataReader的读取方法。

 SqlDataReader dr = cmd.ExecuteReader();

 while(dr.Read())
 {
 b = (bool)dr["ISADMIN"];
 }