【问题标题】:ArgumentException参数异常
【发布时间】:2015-09-15 04:41:30
【问题描述】:

我正在制作一个简单的登录表单并收到以下异常

ArgumentException 被捕获。对象类型不存在映射 System.Web.UI.WebControls.TextBox 到已知的托管提供程序本机 输入。

这里是 C# 代码

        SqlConnection con = new SqlConnection("Data source=.;Initial catalog=InvoiceSystem;user id =sa;password=rfm");
        SqlCommand cmd = new SqlCommand("spLogin", con);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlParameter p1 = new SqlParameter("username", txtUsername);
        SqlParameter p2 = new SqlParameter("password", txtPassword);
        cmd.Parameters.Add(p1);
        cmd.Parameters.Add(p2);
        try
        {
            con.Open();
            SqlDataReader rd = cmd.ExecuteReader();
            if (rd.HasRows)
            {
                rd.Read();
                Response.Redirect("Default.aspx");
            }
            else
            {
                Response.Write("<script>alert('Invalid Username/Password')</script>");
            }
        }
        catch{

        }

【问题讨论】:

    标签: c# sql stored-procedures argumentexception ionic-zip


    【解决方案1】:

    您尝试将TextBox 对象发送到存储过程:

    SqlParameter p1 = new SqlParameter("username", txtUsername);
    SqlParameter p2 = new SqlParameter("password", txtPassword);
    

    它不知道如何处理这些对象。相反,只需发送这些文本框中包含的文本:

    SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
    SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
    

    【讨论】:

      【解决方案2】:

      您将 TextBox 本身传递给 SqlParameter 而不是它的文本值。改成:

         SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
         SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
      

      【讨论】:

        【解决方案3】:

        您必须像这样使用.Text 属性提取文本:

        SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
        SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-16
          • 2010-09-26
          • 2020-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多