使用C#将列添加到SQL Server CE表

时间:2016-08-04 07:24:10

标签: c# sql-server-ce

我正在尝试使用C#代码向CE数据库中的表添加新列。

此SQL在SSMS中工作以添加到标准SQL数据库表:

IF NOT EXISTS(SELECT * FROM sys.columns WHERE Name = N'sent' AND Object_ID = Object_ID(N'QAReports')) BEGIN 
  ALTER TABLE QAReports ADD [Sent] bit NULL;
END

但是当我尝试在C#中运行相同的sql时出现错误:

  

解析查询时出错。 [令牌行号= 1,令牌行偏移= 1,令牌错误= IF]

我用来执行上述SQL的代码是:

bool retVal = true;
try
{
    using (var connection = new SqlCeConnection(ConnString))
    {
        connection.Open();
        using (var command = connection.CreateCommand())
        {
            command.CommandText = sql;
            command.CommandType = CommandType.Text;
            command.ExecuteNonQuery();
        }
        connection.Close();
    }
}
catch (Exception ex)
{
    retVal = false;
}
return retVal;

有没有办法做我想做的事。

有没有更好的方法。我正在尝试在最终用户安装时升级数据库,如果他们需要的话。我检查数据库中的一个值,该值告诉我上次使用的应用程序版本。然后我想运行SQL来添加必需的字段,然后更新数据库中应用程序版本的值。

0 个答案:

没有答案