public partial class SignUp : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btSignup_Click(object sender, EventArgs e)
{
if (tbUname.Text != "" & tbPass.Text != "" && tbName.Text != "" && tbEmail.Text != "" && tbCPass.Text != "")
{
if (tbPass.Text == tbCPass.Text)
{
String CS = ConfigurationManager.ConnectionStrings["Database_AvaliacaoConnectionString1"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("insert into Users Values('" + tbUname.Text + "','" + tbPass.Text + "','" + tbEmail.Text + "','" + tbName.Text + "','')", con);
con.Open();
cmd.ExecuteNonQuery();
lblMsg.Text = "Registration Successfull";
lblMsg.ForeColor = Color.Green;
// Response.Redirect("~/Signin.aspx");
}
}
else
{
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Passwords do not match";
}
}
else
{
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "All Fields Are Mandatory";
}
}
}
在users表中,我得到了以下值
[Uid] int IDENTITY (1,1) PRIMARY KEY,
[Username] NVARCHAR(MAX) NULL,
[Password] NVARCHAR(MAX) NULL,
[Email] NVARCHAR(MAX) NULL,
[Name] NVARCHAR(MAX) NULL
我尝试注册时出现以下错误:
system.data.sqlclient.sqlexception:'只有在使用列列表并且启用了identity\U insert时,才能为表'users'中的标识列指定显式值。'
出于某种原因,它不允许我添加值。
1条答案
按热度按时间ccrfmcuu1#
按列在表中的显示顺序插入列:
你是说第一个领域
UID
应该设置为tbUname.Text
. 那是胡说八道。相反,请指定要插入的字段,然后按顺序列出这些字段:
代码中不相关但麻烦的事情:
不要将sql字符串连接在一起。这就为sql注入攻击留下了很大的空间。而是参数化sql
不要在数据库中以明文形式存储密码。它们应该用盐腌制。