C# winform中怎么对dataGrid中的列累加求和

zk911 2007-09-14 03:31:29
问题如题

请过路的朋友看一下
...全文
400 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤剑 2007-09-14
  • 打赏
  • 举报
回复
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void test()
{
//System.Diagnostics.Debug.WriteLine(this.textBox1.SelectionStart.ToString());

}

private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = this.CreateTestDataTable();

for (int i = 0; i < 100; i++)
{
dt.Rows.Add(new object[] { i, i });
}
dt.AcceptChanges();

this.dataGridView1.DataSource = dt;
}

private DataTable CreateTestDataTable()
{
DataTable dt = new DataTable("test");

dt.Columns.Add(new DataColumn("index", typeof(int)));
dt.Columns.Add(new DataColumn("number", typeof(int)));

dt.AcceptChanges();

return dt;
}

private void button1_Click(object sender, EventArgs e)
{
DataTable dt = this.dataGridView1.DataSource as DataTable;

//
if (null == dt)
{
return;
}

long sum = (long)dt.Compute("sum(number)", string.Empty);

MessageBox.Show(sum.ToString());
}

}
}
孤剑 2007-09-14
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = this.dataGridView1.DataSource as DataTable;

//
if (null == dt)
{
return;
}

long sum = (long)dt.Compute("sum(number)", string.Empty);

MessageBox.Show(sum.ToString());
}
lnwuyaowei 2007-09-14
  • 打赏
  • 举报
回复
cansum396(漆黑的夜)
的方法更有通用性。
shiling_02404 2007-09-14
  • 打赏
  • 举报
回复
DataTable dt=this.DataGrid1.DataSource;
int sumvalue=0; //实际类型依你的而定
for(int i=0;i>dt.Rows.Count;i++)
{
sumvalue=sumvalue+Convert.ToInt32(dr.Rows[i][1]); //把所有行中第一列的值全部加起来.
}
gavinhuanghsc 2007-09-14
  • 打赏
  • 举报
回复
貌似没有
zk911 2007-09-14
  • 打赏
  • 举报
回复
我想通过datagrid求和 有更好的解决方法吗
gavinhuanghsc 2007-09-14
  • 打赏
  • 举报
回复
累计增量求和?通过数据库实现吧
cansum396 2007-09-14
  • 打赏
  • 举报
回复
调用 :Amount((datatable) Datagrid),要求和的列名,1)
public Decimal Amount(DataTable dt,string FieldName,Decimal Curr)
{
Decimal m_Amount=0;
DataTable mdt=new DataTable();
mdt=dt.Copy();
for (int i=0;i<mdt.Rows.Count;i++)
{
if(mdt.Rows[i].RowState.ToString()!="Deleted")
{
if(mdt.Rows[i][FieldName]==DBNull.Value)
{
m_Amount=m_Amount+0;
}
else
{
m_Amount=m_Amount+(Decimal) mdt.Rows[i][FieldName];
}
}
}
if(FieldName=="调整金额")
{
return Math.Round(m_Amount*Curr,2);
}
else
{
return Math.Round(m_Amount*Curr,1);
}
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧