C# 如何在asp.net中从数据库中检索值?
我有一个数据库。我在sqlcommand中从数据库中获取两个值,但我面临的一个问题是如何从reader()中的表中获取adminstatus 我的代码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;
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)),您所说的“不工作”是什么意思?你有错误信息吗?