我一直在通过SqlCeConnection在 C# 中使用 SQL 和数据库。我一直在使用ExecuteReader来读取读入 Long 的记录 ID 的结果和BigInt值。
今天我一直在使用基于 COUNT 的语句('SELECT COUNT(*) FROM X')的 SQL 语句,并且一直在使用ExecuteScalar来读取这些单值结果。
但是,我遇到了一个问题。我似乎无法将值存储到我一直在使用的 Long 数据类型中。我可以将它们存储到 Int64 中。
我一直在使用 BigInt 作为记录 ID,以获得最大的潜在记录数。
因此,一个 BigInt 8 字节是一个 Int64。Long 是否不等于 Int64,因为两者都是 64 位有符号整数?
因此,为什么我不能将 Int64 转换为 Long?
long recordCount =0;
recordCount = (long)selectCommand.ExecuteScalar();
错误是:
指定的演员表无效。
我可以将 BigInt 读入 Long。这不成问题。我无法将 SQL COUNT 读入很长的内容。
COUNT 返回一个 Int (Int32),所以问题实际上是将 Int32 转换为 long。