我有一个问题,我看不到它
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local);Initial Catalog=MyDb;Integrated Security=True";
con.Open();
SqlCommand cmd = new SqlCommand("insert into User(Username,Password,Firstname,Lastname,Email) VALUES(@user,@pass,@fname,@lname,@emai)", con);
cmd.Parameters.AddWithValue("@user", TxtUserN.Text);
cmd.Parameters.AddWithValue("@pass", txtpass.Text);
cmd.Parameters.AddWithValue("@fname", txtFName.Text);
cmd.Parameters.AddWithValue("@lname", txtLName.Text);
cmd.Parameters.AddWithValue("@emai", TxtEmail.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("You are registered");
我收到错误,说我有
类型'System.Data.SqlClient.SqlException'的未处理异常 发生在System.Data.dll
中
其他信息:
关键字“用户”附近的语法不正确。
我的数据库是
[ID]
,[Username]
,[Password]
,[Firstname]
,[Lastname]
,[Email]
FROM [MyDb].[dbo].[User]
答案 0 :(得分:1)
User
是一个关键字,需要引用:
insert into [User] (Username,Password,Firstname,Lastname,Email) VALUES(@user,@pass,@fname,@lname,@emai)
此外,永远不要将密码存储为明文。使用salted cryptographic hash。
答案 1 :(得分:0)
User是SQL中的保留关键字,因此请尝试查询:
insert into [User] (Username,Password,Firstname,Lastname,Email)
VALUES(@user,@pass,@fname,@lname,@emai)
以下是sql =>中保留关键字的列表link