3つの定義済み型の列とその列に数値が含まれているデータベースがあります。 タイプはデータベース内で別々の時刻に表示されることがあります。 各タイプを1回だけ表示し、そのタイプに関連する数値に合計するDataTableを作成したいとします。AccessからDataTableへのデータを集計します
List<String> types = typesInTable(table);
DataTable t = new DataTable();
t.Clear();
t.Columns.Add("Type");
t.Columns.Add("Total Expenses");
foreach (String type in types)
{
DataRow tmp = t.NewRow();
tmp["Type"] = type;
int total = 0;
myConnection.Open();
OleDbDataReader reader = null;
OleDbCommand cmd = new OleDbCommand("SELECT [Type] , [Expense] FROM [" + table+"]", myConnection);
reader = cmd.ExecuteReader();
while (reader.Read())
{
if(reader["Type"].ToString().Equals(type))
{
total += Convert.ToInt32(reader["Expense"].ToString());
}
}
tmp["Total Expenses"] = total;
if (!t.Rows.Contains(tmp))
{
t.Rows.Add(tmp);
}
myConnection.Close();
}
このコードは、タイプを複数回表示します。
の合計とグループ化の種類が含まれていますか? –
"[タイプ] =" +タイプ –