这是我的代码:
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:不正确 关键字'user'附近的语法。
答案 0 :(得分:5)
user
是T-SQL中的reserved keyword。您需要使用方括号,如[user]
作为最佳做法,请将其更改为非 - 保留字。
也可以使用using
statement自动处理您的连接和命令,而不是手动调用Close
方法。
using(var connection = new SqlConnection(connectionString))
using(var create = connection.CreateCommand())
{
create.CommandText = "...";
connection.Open();
create.ExecuteNonQuery();
}
答案 1 :(得分:1)
表名user
是预定义的单词,更改表名
或者使用[user]并且列ucontact
的数据类型为int,大小为int
,不接受大小。那应该是ucontact INT
最终您的查询将如下所示
CREATE TABLE [user] (uid INT PRIMARY KEY IDENTITY(1,1), uname NVARCHAR(30), uemail NVARCHAR(30), upass NVARCHAR(20), ucontact INT)