首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArgumentException

ArgumentException
EN

Stack Overflow用户
提问于 2015-06-28 18:46:50
回答 3查看 242关注 0票数 0

我正在制作一个简单的登录表单,并获得以下异常

ArgumentException被抓了。从对象类型System.Web.UI.WebControls.TextBox到已知的托管提供程序本机类型之间不存在映射。

这是C#代码

代码语言:javascript
复制
        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{

        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-28 18:49:13

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

代码语言:javascript
复制
SqlParameter p1 = new SqlParameter("username", txtUsername);
SqlParameter p2 = new SqlParameter("password", txtPassword);

它不知道如何处理这些物体。相反,只需发送包含在以下文本框中的文本:

代码语言:javascript
复制
SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
票数 3
EN

Stack Overflow用户

发布于 2015-06-28 18:49:21

您正在将TextBox本身传递给SqlParameter,而不是它的文本值。改为:

代码语言:javascript
复制
   SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
   SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
票数 1
EN

Stack Overflow用户

发布于 2015-06-28 18:49:24

必须使用.Text属性提取文本,如下所示:

代码语言:javascript
复制
SqlParameter p1 = new SqlParameter("username", txtUsername.Text);
SqlParameter p2 = new SqlParameter("password", txtPassword.Text);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31103467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档