我在这里被告知[这是查询SQL Server CE表以获取记录,填充和返回自定义对象的正确方法吗?使用TableDirect进行我的SQL Server CE查询,所以我就像这样:
cmd.CommandType = CommandType.TableDirect;
cmd.CommandText = "InventoryItems";
...但现在我想知道TableDirect是否只能与CommandText一起用作表名,IOW a“Select * From”;是否可以这样做:
cmd.CommandType = CommandType.TableDirect;
cmd.CommandText = "Select this, that From InventoryItems where Whatever > 42";
答案 0 :(得分:1)
TableDirect打开单个表(或索引),并且可以访问该表(或索引)中的所有列。您无法使用查询。
但是,你可以模仿许多类似查询的东西。例如,如果您想要WHERE MyField > 42
,那么:
while (rs.Read())
开始派对,因为每一行都符合您的标准(您跳过了所有不符合的标准)。你会发现在很多情况下,通过手工编码这些类型的东西并且不使用查询解析器,可以更好地实现性能。我已经放弃了从>运行嵌入式设备的一些报告的时间。 5分钟到<通过创建查找表的缓存和使用table-direct 15秒。嵌入式设备上JOIN
==“crappy perf”。