我的代码适用于查询SQL Server CE表中的数据并使用它填充通用列表。可以看到here:
但是有一条评论表明我应该用我的马车交换Leer Jet;所以,我正在尝试调整我找到here的代码,并且到目前为止这样做了:
public static List<HHSUtils.InventoryItem> SelectLocalInventoryItemsTableDirect()
{
var invItems = new List<HHSUtils.InventoryItem>();
using (var conn = new SqlCeConnection(dataSource))
{
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.TableDirect;
cmd.CommandText = "InventoryItems";
using (SqlCeResultSet rs cmd.ExecuteResultSet(ResultSetOptions.Scrollable))
{
cmd.Prepare();
while (rs.Read())
{
var invItem = new HHSUtils.InventoryItem
{
Id = Convert.ToString(rs["Id"]),
PackSize = Convert.ToInt16(rs["PackSize"]),
Description = Convert.ToString(rs["Description"]),
DeptDotSubdept = Convert.ToDouble(rs["DeptDotSubdept"]),
Unit_Cost = Convert.ToDouble(rs["UnitCost"]),
Unit_List = Convert.ToDouble(rs["UnitList"]),
UPC_code = Convert.ToString(rs["UPCCode"]),
UPC_pack_size = Convert.ToInt16(rs["UPCPackSize"]),
CRV_Id = Convert.ToInt32(rs["CRVId"])
};
invItems.Add(invItem);
}
}
}
return invItems;
}
...但是因为我只是循环遍历结果集来填充泛型列表,我想我不想要ResultSetOptions.Updatable(我之后需要不同的代码)。有以下几种可能性:
Insensitive
None
Scrollable
Sensitive
Updatable
...这对我的情况最好 - 可滚动?
这似乎运行正常,而且速度很快,但我仍然不知道哪个ResultSetOptions属性是最优的...... This msdn article讨论了这个枚举,但并没有深入探讨它们何时应该/不被使用。