在一个SqlCe命令中创建多个表不起作用

时间:2012-08-03 03:26:51

标签: c# mysql sql-server-ce

我尝试运行以下代码:

           SqlCeEngine engine = new SqlCeEngine( connStr );
            engine.CreateDatabase( );

            SqlCeConnection conn = null;


            conn = new SqlCeConnection( connStr );
            conn.Open( );

            string eh =
@"Create table test(ID INT IDENTITY NOT NULL PRIMARY KEY, DateTest DATETIME);
Create table test2(ID INT IDENTITY NOT NULL PRIMARY KEY, DateTest DATETIME);";

            SqlCeCommand hm = new SqlCeCommand(eh, conn);
             hm.ExecuteNonQuery();

但是当我尝试执行ExecuteNonQuery时,我得到以下异常:

  

{解析查询时出错。 [令牌行号= 2,令牌   line offset = 1,Token in error = Create]}

任何想法可能导致这种情况发生?

3 个答案:

答案 0 :(得分:2)

您必须单独执行每个命令。

如果您希望它们一起成功或失败,那么您需要将所有内容包装在事务中。

答案 1 :(得分:2)

像其他人说的那样,这两个命令需要分开。我相信在两个命令之间添加GO也可以。

答案 2 :(得分:1)

您在创建中的第二个语句包含table2,它应该只是table

  

创建 test2(ID INT IDENTITY NOT NULL PRIMARY KEY,DateTest   DATETIME);

编辑:由于table2是一个拼写错误,我相信您必须单独执行这两个命令。