在表中创建时出错

时间:2014-07-08 11:40:38

标签: c# sql sql-server

我正在尝试通过c#创建表 我正在使用以下代码

private void Login_Load(object sender, EventArgs e)
    {
        string connectionstring = "server=.;database=Student;Integrated Security=True";
        SqlConnection conn = new SqlConnection(connectionstring);
        string fee_table = @"
  IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'fees') AND   type in (N'U')) CREATE TABLE user (user_name char(50),password char(50));";

        conn.Open();
        SqlCommand cmd = new SqlCommand(fee_table, conn);
        cmd.ExecuteNonQuery();
    }

但是我在用户

附近遇到运行时错误语法错误

3 个答案:

答案 0 :(得分:4)

user是许多数据库中的关键字。您需要更改表的名称或引用它。例如,在SQL Server中执行以下操作:

CREATE TABLE [user] (user_name char(50),password char(50))

在其他数据库系统中,您可以使用:

CREATE TABLE "user" (user_name char(50),password char(50))

或者:

CREATE TABLE 'user' (user_name char(50),password char(50))

答案 1 :(得分:2)

用户是reserved keyword。将其更改为[user]

enter image description here

更改为

enter image description here

答案 2 :(得分:1)

USER是T-SQL中的 reserved keyword 。你应该使用方括号[]。但是,最好的解决方案是将名称更改为非保留字。

还可以使用using statement来处置您的SqlConnectionSqlCommand

string connectionstring = "server=.;database=Student;Integrated Security=True";
using(SqlConnection con = new SqlConnection(connectionstring ))
using(SqlCommand cmd = con.CreateCommand())
{
     ...
     con.Open();
     cmd.ExecuteNonQuery();
}