【问题标题】:Unspecified Error when trying to ExecuteReader on SQL Server CE尝试在 SQL Server CE 上执行 ExecuteReader 时出现未指定的错误
【发布时间】:2015-08-12 18:29:14
【问题描述】:

我已经使用 SQL Server CE 在我的 Windows Mobile 6.5 应用程序上实现了一个数据库存储。

已设法在设备 (Motorola MC65) 上安装 SQL Server CE CAB 文件。

管理创建数据库文件和创建表。也可以执行插入。

但是,当我尝试运行 ExecuteReader() 来读取记录时,我遇到了以下错误:

错误代码:80004005
消息:未指定的错误
小错误:25534
来源:SQL Server Compact ADO.NET 数据提供程序

不知道为什么会这样。由于insert 可以执行,我认为这不应该是连接或权限问题。

阅读代码如下:

openConnection();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT NAME FROM GROUP_INFO ORDER BY NAME ";

SqlCeDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
      string groupName = reader.GetString(0);
      listGroup.Add(groupName);
}

cmd.ExecuteReader()正在执行的那一行抛出异常。

任何指针表示赞赏。谢谢。

【问题讨论】:

  • 除了通过 try/catch 包围 executeReader 之外,添加一个 ;在每个 sql 语句的末尾。

标签: c# sql-server-ce windows-mobile-6.5


【解决方案1】:

为 SqlCeExceptions 实施适当的错误处理!错误记录在这里https://technet.microsoft.com/en-us/library/ms172350(v=sql.110).aspx

大对象(ntext 和 image)不能在 ORDER BY 子句中使用。

也许您应该将该列重新定义为 nvarchar(4000)(当前为 ntext),或者使用以下命令重新表述查询:

 ORDER BY CAST(Name as nvarchar(4000))

但这会导致表扫描

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多