首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >注册asp.net中“asp.net”类型的一个例外

注册asp.net中“asp.net”类型的一个例外
EN

Stack Overflow用户
提问于 2015-02-25 21:37:27
回答 2查看 1.7K关注 0票数 0

我正在尝试创建一个注册页面,但它没有按计划进行。它一直抛出这个错误:

“System.Data.SqlClient.SqlException”类型的异常发生在System.Data.dll中,但未在用户代码中处理

在我的桌子上,

代码语言:javascript
复制
    [userid]          INT          NOT NULL,
    [username]        VARCHAR (50) NULL,

这是我的c#代码

代码语言:javascript
复制
 protected void Button1_Click(object sender, EventArgs e)
        {
            if (txtPassword.Text == txtConfirmPassword.Text)
            {
                string username = txtUsername.Text;
                string password = txtPassword.Text;
                string confirmpassword = txtConfirmPassword.Text;
                string email = txtEmail.Text;

                con.Open();
                String str = "INSERT INTO users (userid, username, password, confirmpassword, email) VALUES(@userid, @username, @password, @confirmpassword, @email)";

                SqlCommand cmd = new SqlCommand(str, con);

                cmd.Parameters.AddWithValue("@username", username);
                cmd.Parameters.AddWithValue("@password", password);
                cmd.Parameters.AddWithValue("@confirmpassword", confirmpassword);
                cmd.Parameters.AddWithValue("@email", email);

                cmd.ExecuteNonQuery();

                lblMessage.Text = "OK!!!!!!!!!!!!!!!!!!!";
                con.Close();
            }
        }

我不知道如何传递用户I?

更新需要在数据库中将标识设置为userid。谢谢大家

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-25 21:46:12

您的代码试图编写5个字段,但只传递4个参数。

@userid参数在SqlCommand.Parameters集合中丢失。

现在有两种可能性。如果用户is字段是标识列,则不应该为userid字段传递任何内容,查询将变为

代码语言:javascript
复制
  String str = @"INSERT INTO users (username, password, confirmpassword, email) 
                VALUES(@username, @password, @confirmpassword, @email)";

或者,如果它是一个正常字段,则需要将该参数添加到SqlCommand参数集合中。

票数 3
EN

Stack Overflow用户

发布于 2015-02-25 21:48:18

首先,如果isIdentity设置为true,则不要传递userId param。第二,即使在连接字符串中也提到了它,但您可以在查询中通过CatalogName.dbo.TableName调用表。

代码语言:javascript
复制
"INSERT INTO dbName.dbo.users (username, password, confirmpassword, email) VALUES(@username, @password, @confirmpassword, @email)";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28730139

复制
相关文章

相似问题

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