在c#中使用sqlcommand执行查询时出错

Nar*_*amy 2 c# web-applications sql-server-2012 visual-studio-2012

这是我的代码:

string createString = "CREATE TABLE user (uid INT PRIMARY KEY IDENTITY(1,1), uname NVARCHAR(30), uemail NVARCHAR(30), upass NVARCHAR(20), ucontact INT(10))"; //YOUR SQL COMMAND TO CREATE A TABLE

SqlConnection connection = new SqlConnection("Data Source=DELL\\SQLEXPRESS;Integrated Security=True;Connect Timeout=1000000;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

SqlCommand create = new SqlCommand(createString, connection);

connection.Open();
create.ExecuteNonQuery();
connection.Close();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

关键字"user"附近的语法不正确

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlClient.SqlException:关键字"user"附近的语法不正确.

Son*_*nül 5

user是T-SQL中的保留关键字.你需要使用方括号,如[user]

作为最佳实践,将其更改为非保留字.

还可以使用usingstatement自动处理连接和命令,而不是Close手动调用方法.

using(var connection = new SqlConnection(connectionString))
using(var create = connection.CreateCommand())
{
     create.CommandText = "...";
     connection.Open();
     create.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)