2015-06-25 59 views
0

我试图向表中添加一个新行。数据库是一个MSSQL。我有一些其他表格已经工作得很好,但是当我做了一个新的表,我不能添加新的行。相反,我收到此错误信息:当我试图插入表格时,获得一个奇怪的“语法错误”

“类型‘System.Data.SqlClient.SqlException’的异常出现在System.Data.dll中,但在用户代码中没有处理

附加信息:附近有语法错误关键字'用户'。“

我不知道为什么...

在VS2013代码lookes这样

 public void Update_Admin(User User) 
    { 
     using (SqlCommand cmd = new SqlCommand("INSERT INTO Admin (User, Password) VALUES (@User, @Password);", con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      cmd.Parameters.Add("@User", SqlDbType.VarChar).Value = User.UserName; 
      cmd.Parameters.Add("@Password", SqlDbType.VarChar).Value = User.Password; 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 
     } 
    } 

我知道,那进来的值是真实的。任何人都知道错误?

表看起来像这样

CREATE TABLE [dbo].[Admin] (
[Id]  INT   IDENTITY (1, 1) NOT NULL, 
[User]  VARCHAR (50) NULL, 
[Password] VARCHAR (50) NULL, 
PRIMARY KEY CLUSTERED ([Id] ASC) 

);

+0

我不认为MSSQL被爆冷战胜关键词;但是,以防万一你试图在你的插入语句中围绕用户和密码放置括号吗? “INSERT INTO Admin([User],[Password])...”至少消除一个可能的原因 –

+0

你真的不应该以纯文本形式存储密码。他们应该被盐渍和散开。 –

回答

5

你必须逃离这个词User

using (SqlCommand cmd = new SqlCommand("INSERT INTO Admin ([User], Password) VALUES (@User, @Password);", con)) 
+0

问题解决了! Thx男人!保存我的日子:P – Hussaren

+0

请标记为已回答。 – NoChance

+0

还可以,需要再等9分钟:P Joao Leal快速解决我的问题:P – Hussaren

相关问题