質問

I have code that works for querying data from a SQL Server CE table and populating a generic list with it. That can be seen here:

But a comment there indicates I should trade in my horse-and-buggy for a Leer Jet; so, I'm trying to adapt code I found here and have this so far:

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;
}

...but since I'm simply looping through the result set to populate the generic list, I reckon I don't want ResultSetOptions.Updatable (and I'll need different code following that). Of the following possibilities:

Insensitive
None
Scrollable
Sensitive
Updatable

...which is best for my situation - Scrollable?

UPDATE

This seems to work fine, and fast, but I still don't know which ResultSetOptions property is optimal...This msdn article talks about this enumeration, but doesn't exactly go into great depth about when they should/not be used.

役に立ちましたか?

解決

You'd want to use None in your case. cmd.Prepare is also unnecessary. As indicated in this question, GetValues is also faster.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top