Ошибка синтаксиса SQL -

1

Я пытаюсь выполнить этот запрос, но продолжаю получать эту ошибку;

errorSystem.Data.SqlClient.SqlException(0x80131904): Неверный синтаксис рядом с ключевым словом "пользователь". в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, Boolean breakConnection, Action 1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean, Boolean callerHasConnectionLock asyncClose) в System.Data.SqlClient.TdsParser.TryRun(runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) в System.Data.SqlClient.SqlCommand. FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task & task, Boolean asyncWrite, SqlDataReader ds) в System.Data.SqlClient.SqlCommand.RunExecuteReader (С ommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource 1, String methodName, Boolean sendToPipe, Int32 timeout, Boolean 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: строка 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)";
Теги:
sql-server
syntax

1 ответ

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)";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню