2015-06-25 88 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

相關問題