C# 如何在asp.net中从数据库中检索值?

C# 如何在asp.net中从数据库中检索值?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个数据库。我在sqlcommand中从数据库中获取两个值,但我面临的一个问题是如何从reader()中的表中获取adminstatus 我的代码 protected void signin_Click(object sender, EventArgs e) { string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

我有一个数据库。我在sqlcommand中从数据库中获取两个值,但我面临的一个问题是如何从reader()中的表中获取adminstatus

我的代码

protected void signin_Click(object sender, EventArgs e)
    {

    string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

    using (SqlConnection conn = new SqlConnection(connectionString))
    using (SqlCommand comm = new SqlCommand("SELECT password,adminstatus FROM usertable WHERE userid = @username", conn))
    {
        comm.Parameters.AddWithValue("@username", logintext.Text);

        conn.Open();

        using (SqlDataReader reader = comm.ExecuteReader())
        {
            if (reader.Read())
            {
                string password = reader.GetString(0);
                //int st =Convert.ToInt32(reader.GetString(1));
                //int st = reader.GetInt32(0);
                if (password == logpasstext.Text)
                {
                    Session["userid"] = logintext.Text;
                   // iframestyle.Attributes["src"] = "userpage.aspx";
                    iframestyle.Attributes["src"] = "userpage.aspx";
                    logdiv.Attributes["style"] = "display:none;";
                }
              /*  else if (password == logpasstext.Text && st == 1)
                {
                    Session["userid"] = logintext.Text;
                    // iframestyle.Attributes["src"] = "userpage.aspx";
                    iframestyle.Attributes["src"] = "adminpage.aspx";
                    logdiv.Attributes["style"] = "display:none;";
                }*/

                else
                {
                    errorsignin.Visible = true;
                    errorsignin.Text = "INVALID LOGIN";
                    logdiv.Attributes["style"] = "display:block;";
                }
            }
            else
            {
                errorsignin.Visible = true;
                errorsignin.Text = "INVALID LOGIN";
                logdiv.Attributes["style"] = "display:block;";
            }
        }
    }
}
我无法使用reader从表中获取adminstatus

string adminStatus = reader.GetString(1)
其中“1”是字段在查询中的位置

或者更好:

string adminStatus = reader.GetString(reader.GetOrdinal("adminstatus"))
使用
reader.GetOrdinal(“adminstatus”)
返回字段在查询中的位置

您必须用对应于数据类型的方法(例如,GetInt32或GetFloat或GetBoolean)替换“GetString”


尝试将
字符串索引器
与SQLDataReader一起使用。只需指定要检索的列名

 string adminstatus= Convert.ToString(reader["AdminStatus"]); 
// Assuming AdminStatus is a column name

您可以使用
reader.GetOrdinal(ColumnName)
来避免出现幻数

那我就和你一起去

//if adminstatus is a SQL string like the other field
reader.GetString(reader.GetOrdinal("adminstatus")); // returns string

//if adminstatus is for example a SQL bit 
reader.GetBoolean(reader.GetOrdinal("adminstatus")); // returns bool
不要以明文形式存储密码“无法获取管理员状态”是什么意思?你有错误吗?你得到的是空值吗?如果是后者,您确定这不是数据库中的实际值吗?被注释掉的代码看起来很好(如果您知道它是一个int,则可能应该使用reader.GetInt32(1)),您所说的“不工作”是什么意思?你有错误信息吗?