1
votes

i am trying to execute this query but keep getting this error;

errorSystem.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near the keyword 'user'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Registration.RegistrationPage.Button1_Click1(Object sender, EventArgs e) in c:\Users\kristhnen.jagambrum\Documents\Visual Studio 2012\Projects\Registration\Registration\RegistrationPage.aspx.cs:line 52 ClientConnectionId:8c00c1af-b9a7-477b-881f-f849a8c0d0ec

the query i am trying to execute is;

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();
1
is user a key word if so wrap the table name around [] "INSERT INTO [user] (UserName, FirstName, LastName, Email, Password, Country) VALUES (@uname, @fname, @lname, @email, @password, @country)";MethodMan

1 Answers

2
votes

is user a key word if so wrap the table name around []

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

or you could use this style as well

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