输入字符串的格式不正确。想要整数作为输入

时间:2017-05-23 01:46:20

标签: c# asp.net

我在visual studio中使用asp.net开发了一个Web应用程序。有一个使用SQL数据的登录表单。首先,用户登录过程很顺利,代码如下。

protected void btnSubmit_Click(object sender, EventArgs e) 
{
    cmd.CommandText = "select * from Usertbl where Username='" + TextBox1.Text + "' and Password='" + TextBox2.Text + "'";
    cmd.Connection = con;
    sda.SelectCommand = cmd;
    sda.Fill(ds, "reg");
    if (ds.Tables[0].Rows.Count > 0) 
    {
        isLoggedIn = true;
        Session["New"] = TextBox1.Text;
        Response.Redirect("Index.aspx");
    } 
    else 
    {
        isLoggedIn = false;
        Label3.Text = "Incorrect username or password";
    }
}

然后我添加另一个用户登录的角色,我称之为admin(因为我希望登录后用户的不同角色重定向到不同的网页),而他们的数据来自另一个SQL表,所以我添加了另一个sql命令:

protected void btnSubmit_Click(object sender, EventArgs e) 
{
    cmd.CommandText = "select * from Admintbl where username='" + TextBox1.Text + "' 
and password = '" + TextBox2.Text + "'
";
    cmd.Connection = con;
    sda.SelectCommand = cmd;
    sda.Fill(ds, "reg");

    if (ds.Tables[0].Rows.Count > 0) 
    {
        isLoggedIn = true;
        Session["New"] = TextBox1.Text;
        Response.Redirect("Admin.aspx");

    } 
    else 
    {
        cmd.CommandText = "select * from Usertbl where Username='" +
        TextBox1.Text + "' and 
    Password = '" + TextBox2.Text + "'
    ";
        cmd.Connection = con;
        sda.SelectCommand = cmd;
        sda.Fill(ds, "reg"); //**Source Error happens here**

        if (ds.Tables[0].Rows.Count > 0) 
        {
            isLoggedIn = true;
            Session["New"] = TextBox1.Text;
            Response.Redirect("Index.aspx");
        } 
        else 
        {
            isLoggedIn = false;
            Label3.Text = "Incorrect username or password";
        }
    }
} 

我尝试使用Admintbl登录后,它可以登录但不能登录Usertbl,它说

  

输入字符串的格式不正确。

在堆栈跟踪中它说

  

输入字符串的格式不正确。无法在用户名列中存储<nani>。预期类型为Int32

所以我尝试使用用户名:1​​234 密码:0 登录,然后显示成功。

它想要整数作为我的用户名。我不明白为什么,有人可以向我解释一下吗?

0 个答案:

没有答案