C# SqlCeException : One Line SQL to determine table exists

标签 c# winforms sql-server-ce

遵循 SO Question #167576 中提出的准则,我在 C# WinForm 应用程序中构建了以下 SQL 查询字符串来确定表 RMCoil 是否存在:

using (SqlCeCommand cmd = new SqlCeCommand(null, new SqlCeConnection(Connection))) {
  cmd.Connection.Open();
  cmd.CommandText =
    "IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil') " +
    "SELECT 1 ELSE SELECT 0";
  if (cmd.ExecuteNonQuery() < 1) {
    // code to create table
  }
}

执行非查询会抛出此SqlCeException:

There was an error parsing the query. [ Token line number = 1,Token line offset = 1,Token in error = IF ]

我对 SqlCeServer 还很陌生。有人可以告诉我如何在一行中执行此查询吗?

最佳答案

SELECT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil') 可能会成功?
您还必须执行 ExecuteScalar() 而不是 ExecuteNonQuery() 我认为要检索您的值...

正如 Paul Sasik 非常明智地指出的那样,以下查询甚至更好:
从 INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil' 中选择 COUNT(*)

关于C# SqlCeException : One Line SQL to determine table exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362794/

相关文章:

.net - 找不到请求的.Net Framework数据提供程序

c# - 如何使用 Sql CE 4 数据库进行功能测试

c# - 如何删除由 c# 中的 xmlreader 打开的文件?

c# - 将选择的文件提升到 IIS7 站点

c# - 如何加速 C#/Linq 查询? [我不需要获取数据,我需要获取条件]

c# - 自定义 TabControl 显示问题

c# - 在某些行上使用.Distinct()

.net - 表单背景颜色设置为淡色

.net - 做跨线程 Winforms 的最简单方法是什么?

asp.net-mvc - 如何将SQL CE 4 CTP部署到共享主机?