2014-12-02 108 views
1

我試圖執行此查詢,但不斷收到此錯誤;SQL語法錯誤 -

errorSystem.Data.SqlClient.SqlException(0x80131904):關鍵字'用戶'附近的語法不正確。 System.Data.SqlClient.SqlConnection.OnError(SqlException異常,布爾breakConnection,動作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布爾callerHasConnectionLock,布爾asyncClose)在System.Data.SqlClient.TdsParser在System.Data.SqlClient.SqlCommand上的System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)上的.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布爾& dataReady) .RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,布爾異步,Int32超時,任務&任務,布爾asyncWrite,SqlDataReader ds)在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,String方法,TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource在完成,字符串methodName,布爾sendToPipe,Int32超時,布爾asyncWrite)在System.Data.SqlClient.SqlCommand.ExecuteNonQuery()在Registration.RegistrationPage.Button1_Click1(對象發件人,EventArgs e)在c:\ Users \ kristhnen.jagambrum \ Documents \ Visual Studio 2012 \ Projects \ Registration \ Registration \ RegistrationPage.aspx.cs:line 52 ClientConnectionId:8c00c1af-b9a7-477b-881f-f849a8c0d0ec

查詢我試圖執行是;

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["userinfo.ConnectionString"].ConnectionString); 
conn.Open(); 
// string uname = usernametextbox.Text; 
// string fname = fnametextbox.Text; 
// string lname = lnametextbox.Text; 
// string email = emailtextbox.Text; 
// string ppassword = passwordtextbox.Text; 
// string ccountry = DropDownListcountry.SelectedItem.Text; 

string insertQuery = "INSERT INTO user (UserName, FirstName, LastName, Email, Password, Country) VALUES (@uname, @fname, @lname, @email, @password, @country)"; 

SqlCommand comm = new SqlCommand(insertQuery, conn); 
//int temp = Convert.ToInt32(comm.ExecuteScalar().ToString()); 
comm.Parameters.AddWithValue("@uname", usernametextbox.Text); 
comm.Parameters.AddWithValue("@fname", fnametextbox.Text); 
comm.Parameters.AddWithValue("@lname", lnametextbox.Text); 
comm.Parameters.AddWithValue("@email", emailtextbox.Text); 
comm.Parameters.AddWithValue("@country", DropDownListcountry.ToString()); 
comm.Parameters.AddWithValue("@password", passwordtextbox.Text); 

comm.ExecuteNonQuery(); 
// Response.Redirect("manager.aspx"); 

conn.Close(); 
+4

是表名'user'一個關鍵的詞,如果所以將表名包裝在'[]' ''INSERT INTO [user](UserName,FirstName,LastName,Email,Password,Country)VALUES(@uname,@fname,@lname,@email,@password,@country )「;' – MethodMan 2014-12-02 17:01:20

回答

2

是用戶的一個關鍵的字,如果這樣環繞[]

"INSERT INTO [user] (UserName, FirstName, LastName, Email, Password, Country) 
      VALUES (@uname, @fname, @lname, @email, @password, @country)"; 

,或者你可以使用這個風格以及

"INSERT INTO [dbo].[user] (UserName, FirstName, LastName, Email, Password, Country) 
    VALUES (@uname, @fname, @lname, @email, @password, @country)";