我想這樣做,整個事情在C#。什麼是最好的方法?
最好的辦法是在SQL表達式中使用這樣
SELECT
Kid,
SUM(AMOUNT) Sum_of_amount
FROM
table
GROUP BY
Kid
使用SQL讀者使用這個SQL是相當直截了當。下面是一個例子,我將讀者的值投影到一個由匿名類型組成的列表中。如果你不想讓我匿名,你可以定義你自己的類型並使用它。您也可以使用for
循環代替linq表達式。
using (SqlConnection cn = new SqlConnection ("ConnectionString"))
using (SqlCommand cmd = new SqlCommand (@"
SELECT
Kid,
SUM(AMOUNT) Sum_of_amount
FROM
table
GROUP BY
Kid", cn))
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
var list = (from r in dr.Cast<DbDataRecord>()
select new {Id= r.GetInt32(0), SumOfAmount = r.GetInt32(1) }).ToList();
}
}
如果你正在使用類似的LINQ to SQL它非常直截了當地做這樣
Table<Kids> kids = db.GetKids();
var kidsSum =
(from k in kids
group p by p.Id into g
select new {ID = g.Key, SumOfAmount = g.Sum(p => p.Amount) }).ToList();
什麼是保存最好的方式?數組列表?
沒有「最好」的方式,但直接操縱數組有問題。你最好用你選擇的通用集合。
鍵入數據集也是一個有效的選擇,儘管許多人不喜歡它們。
如果你在SQL中這樣做,它可能會很容易,但我不確定如果你想要一個C#答案如何幫助你。該解決方案可能很容易在LINQ中完成,但我不知道LINQ發佈足夠的解決方案...... – FrustratedWithFormsDesigner
您在C#中使用的是什麼數據庫抽象?你可以使用LINQ嗎? – Kekoa