我的代码:
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)