C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: DataTableの三列目の値を足していき、合計値を出す


(過去ログ 68 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■39594 / inTopicNo.1)  DataTableの三列目の値を足していき、合計値を出す
  
□投稿者/ 飴 (1回)-(2009/08/11(Tue) 11:50:31)

分類:[.NET 全般] 

Windows
C#

初めて質問させて頂きます。
初心者で至らないところばかりだと思いますが…よろしくお願い致します。

したい処理が、DataTableの三列目の値を足していき、合計値を出すというものです。
スプレッドを使用しています。
下記のコードの、foreach文の中にどうコードを書いたらいいのかわからずにいます…。
今は、一列目の値が空でなければ〜という風にして、
if文の中に三列目の値を足していく…という処理をしたいのですが。

合計値は、スプレッドとはまた別のテキストボックスに表示するつもりです。


private bool UpdateProcess()
{
this.spdList.SaveChanges();

if (this.spdList.DataSource == null)
{
this.lblMessage.Text = "スプレッドのデータソースの取得に失敗しました。";
return false;
}

DataSet ds = (DataSet)this.spdList.DataSource;
DataTable dt = ds.Tables[0];

foreach (DataRow row in dt.Rows)
{
if (row[0].ToString != null)
{


}
    }


どなたかご教授下さると助かります!
引用返信 編集キー/
■39596 / inTopicNo.2)  Re[1]: DataTableの三列目の値を足していき、合計値を出す
□投稿者/ 魔界の仮面弁士 (1190回)-(2009/08/11(Tue) 12:22:16)
No39594 (飴 さん) に返信
> したい処理が、DataTableの三列目の値を足していき、合計値を出すというものです。

これでどうでしょう。

decimal sum = (decimal)dt.Compute("SUM(" + dt.Columns[2].ColumnName + ")", "");


> 下記のコードの、foreach文の中にどうコードを書いたらいいのかわからずにいます…。
ループで処理する場合、たとえば元の列が decimal 型なら:

decimal sum = 0M;
foreach (DataRow row in dt.Rows)
{
 if (!(row[2] is DBNull)) sum += (decimal)row[2];
}
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -