【发布时间】:2015-01-31 00:29:13
【问题描述】:
我正在尝试执行此查询,但一直收到此错误;
errorSystem.Data.SqlClient.SqlException (0x80131904):关键字“用户”附近的语法不正确。在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection,Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) 在 System.Data.SqlClient。 System.Data.SqlClient.SqlCommand.RunExecuteReader 上的 SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 超时,Task& 任务,Boolean asyncWrite,SqlDataReader ds)(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String 方法, 任务完成源1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1完成,字符串方法名,布尔 sendToPipe,Int32 超时,布尔 asyncWrite) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 Registration.RegistrationPage.Button1_Click1(Object sender, 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();
【问题讨论】:
-
是
user一个关键字,如果是这样的话,将表名包裹在[]"INSERT INTO [user] (UserName, FirstName, LastName, Email, Password, Country) VALUES (@uname, @fname, @lname, @email, @password, @country)";
标签: c# sql sql-server syntax