向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)

原创 2003年08月03日 17:08:00

没有合计

最终效果

如果实现??

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

protected System.Web.UI.WebControls.DataGrid DataGrid1;

         /// <summary>

         /// 数据来源

         /// </summary>

         DataSet CreateDataSource()

         {

              DataTable dt = new DataTable();

              DataRow dr;

            dt.Columns.Add(new DataColumn("名称", typeof(string)));

              dt.Columns.Add(new DataColumn("Value1", typeof(Int32)));

              dt.Columns.Add(new DataColumn("Value2", typeof(Int32)));

              dt.Columns.Add(new DataColumn("Value3", typeof(Int32)));

              dt.Columns.Add(new DataColumn("Value4", typeof(Int32)));

              for (int i = 0; i < 10; i++)

              {

                   dr = dt.NewRow();

                dr[0] = i.ToString()+"名称";

                   dr[1] = i;

                   dr[2] = i+1;

                   dr[3] = i+2;

                   dr[4] = i+3;

                   dt.Rows.Add(dr);

              }

                DataSet MyData=new DataSet();

              MyData.Tables.Add(dt);

              return MyData;

         }

         private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此处放置用户代码以初始化页面

             

              DataSet MyData=CreateDataSource();

//            DataGrid1.DataSource= MyData;

//            DataGrid1.DataBind();

              DataTable MyTable=new DataTable();

              DataColumn myColum;  

              foreach( DataColumn  NowDataColumn in MyData.Tables[0].Columns)

              {

                   myColum=new  DataColumn();

                   myColum.DataType=NowDataColumn.DataType;

                   myColum.ColumnName=NowDataColumn.ColumnName;

                   MyTable.Columns.Add(myColum);

              }

              myColum=new  DataColumn();

              myColum.DataType=System.Type.GetType("System.Int32");

              myColum.ColumnName="每行合计";

              MyTable.Columns.Add(myColum);

              DataRow  AcountRow;   

              int DataColumns=MyData.Tables[0].Columns.Count;

              foreach( DataRow  NowRow in  MyData.Tables[0].Rows)

              {

                   AcountRow=MyTable.NewRow();

                   AcountRow.ItemArray=NowRow.ItemArray;

                   //每行合计

                   GetRowAccount(AcountRow,1,5,DataColumns);

                   MyTable.Rows.Add(AcountRow);

              }

              //生成的合计

              AcountRow=MyTable.NewRow();

              AcountRow[0]="竖列合计";   

              for(int count=1;count<MyTable.Columns.Count;count++)

                   foreach (DataRow NowRow in  MyTable.Rows)

                   {

                       if(!AcountRow.IsNull(count))

                       {

                            if (!AcountRow.IsNull(count) )

                                 AcountRow[count]= Convert.ToInt32(AcountRow[count])+Convert.ToInt32(NowRow[count]);

                       }

                       else   AcountRow[count]=NowRow[count];;

              }

              MyTable.Rows.Add(AcountRow);

              DataGrid1.DataSource=MyTable;

              DataGrid1.DataBind();

 

         }

         /// <summary>

         /// 每行合计

         /// </summary>

         private  void  GetRowAccount(DataRow AcountRow,int begincol,int endcol,int accountcol)

         {

              for(int i=begincol;i<endcol;i++)

              {   

                   if(!AcountRow.IsNull(accountcol))

                   {

                   if ( !AcountRow.IsNull(i) )

                        AcountRow[accountcol]= Convert.ToInt32(AcountRow[accountcol])+Convert.ToInt32(AcountRow[i]);          

                   }

                   else  AcountRow[accountcol]=AcountRow[i];     

              }

         }

 

缺点: 把所有的数据都访问过 肯定效率不是很好

还有其他的办法  如果有更好的方法  请告诉我 

如何在两个页面之间传递DataTable

转载地址:http://bbs.csdn.net/topics/60089625 SP.NET WEB FORMS 页面间的传值方法        ASP.NET WEB FORMS  给开发...
  • WDBS_05
  • WDBS_05
  • 2013年03月05日 09:53
  • 3676

wpf 根据DataTable在后台自动创建DataGrid,而且可以对数据进行初步处理,显示差异

1  前台代码
  • czf2505
  • czf2505
  • 2014年01月13日 19:00
  • 927

C#中DataGridView绑定了DataTable后,通过代码修改DataGridView中的数据,总有一行(被修改过并被用户选中的行集合中索引为0的行)不能被UpDate回数据库的问题和解决办法

问题细节: DataAdapter的update方法可以接收一个datatable参数  然后运行下列代码来改变行数据,再去更新数据库的数据 foreach (DataGridViewRo...
  • iloli
  • iloli
  • 2013年07月07日 19:45
  • 11230

C#如何合并两个相关联的DataTable

一、DataTable1和DataTable2结构相同的情况   结构相同我们只需要把两者的数据罗列到一块就可以了   合并方法:用Rows.Add方法   ...
  • jkpi888
  • jkpi888
  • 2013年12月02日 19:22
  • 2060

c# DataGridView绑定DataTable数据源并指定对应

//指定对应关系的关键在于两点: 1、dgv的 AutoGenerateColumns = false; 2、DataGridView新加入列的fieldNameColumn.DataProperty...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2014年11月26日 20:07
  • 9272

利用ligerUI实现类似数据列表过滤展示,类似JQuery datatable和某些框架的dataGrid

1. 利用的是ligerui的框架,本篇文章使用的ligui版本是LigerUIV1.3.3 , 网址  www.ligerui.com 2. 如下图展示 3.代码如下 3.1 先导入cs...
  • Enable1234___
  • Enable1234___
  • 2016年10月23日 19:40
  • 1150

WPF中DataGrid数据绑定(泛型和datatable)

前台代码: ...
  • kwy15732621629
  • kwy15732621629
  • 2016年07月16日 19:53
  • 3597

如何在DataTable中查找数据 Dataview检索数据

如何在DataTable中查找数据 2012-02-22 08:59:04| 分类: C# |举报|字号 订阅 一、在DataTable中查找 1. 使用Select方法查找没有主键的表,或...
  • cnceohjm
  • cnceohjm
  • 2014年02月25日 22:21
  • 966

juqery datatable ajax请求后台数据 并为表格添加操作列

1.html部分: table id="example1" class="table table-bordered"> thead> tr> th>idth> ...
  • zzq962494
  • zzq962494
  • 2016年10月20日 15:32
  • 4532

过滤DataTable数据的Select()方法

DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作, 下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函...
  • wangzhen209
  • wangzhen209
  • 2016年06月23日 14:37
  • 17738
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)
举报原因:
原因补充:

(最多只允许输入30个字)