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



我的代码:

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

我得到以下错误:

关键字'user'附近语法错误

描述:当前web请求执行过程中出现未处理的异常。有关错误和的详细信息,请查看堆栈跟踪它在代码中的起源。

异常详细信息:System.Data.SqlClient.SqlException: Incorrect关键字'user'附近的语法

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

作为最佳实践,将其改为non-reserved word。

还可以使用using语句来自动处理连接和命令,而不是手动调用Close方法。

using(var connection = new SqlConnection(connectionString))
using(var create = connection.CreateCommand())
{
     create.CommandText = "...";
     connection.Open();
     create.ExecuteNonQuery();
}

表名user为预定义字,更改表名或者使用[user],并且列ucontact的数据类型为int, int将不接受size。应该是ucontact INT最后,您的查询将如下所示

CREATE TABLE [user] (uid INT PRIMARY KEY IDENTITY(1,1), uname NVARCHAR(30), uemail NVARCHAR(30), upass NVARCHAR(20), ucontact INT)

最新更新