2

while (reader.Read())
{
    if (TextBox1.Text.CompareTo(reader["usernam"].ToString()) == 0&&TextBox2.Text.CompareTo(reader["passwd"].ToString()) == 0) // A little messy but does the job to compare your infos assuming your using a textbox for username and password
    {
        Label3.Text = "Redirecting";



        Response.Cookies["dbname"]["Name"] = reader["usernam"].ToString();
        Response.Cookies["dbname"].Expires = DateTime.Now.AddSeconds(10);
        Response.Redirect("index2.aspx");

    }
    else
    { Label3.Text = "NO"; }

}

当我尝试比较用户名 (usernam) 和密码 (passwd) 时,我收到此错误。如果我只将用户名与数据库条目进行比较,它就像一个魅力。

它只会在使用实际数据时给出错误。EI 如果我在登录网页中输入 [admin], [admin] 会报错,如果我输入 [asd], [asd] 然后标签会变为 NO。

代码背后的想法是一个登录页面。我希望我的解释足够好。

4

2 回答 2

4

您只是从表中选择用户名。您没有选择密码,因此当您尝试从结果集中检索密码时会引发异常。

将查询更改为:

string selectString = "SELECT usernam, passwd FROM Table1";
于 2013-05-07T10:57:35.240 回答
1

您还可以在查询中使用 * 代替列名。这里只是一个小场景。如果有多个列,那么您只需要使用 * 即可。这将使您的查询变得简单。

于 2013-05-23T06:01:41.477 回答