//把tbl传递过来时一定要指定其类型,不然会出现对象未实例化
Subbind_table()Subbind_table(ByValtblAsDataTable)
DimcnAsNewSqlClient.SqlConnection(P_Con)
DimcmdAsSqlClient.SqlCommand=cn.CreateCommand
DimadptAsNewSqlClient.SqlDataAdapter(cmd)
DimtblAsNewDataTable//数据绑定,绑定Table表
cmd.CommandTimeout=3000
Try
cmd.CommandText=str
adpt.Fill(tbl)
DimiAsInteger
DimjAsInteger
DimtrblmAsDataRow=tbl.NewRow先新增一行,并给该行的元素赋初始值
trblm.Item(0)="合计"
trblm.Item(1)=tbl.Compute("sum(inum)","")
trblm.Item("heji")=tbl.Compute("sum(heji)","")//对heji字段这一列,进行求和运算运算
trblm.Item("zdinum")=tbl.Compute("sum(zdinum)","")
trblm.Item("zdiprice")=tbl.Compute("sum(zdiprice)","")
trblm.Item("zdheji")=tbl.Compute("sum(zdheji)","")
trblm.Item("ewinum")=tbl.Compute("sum(ewinum)","")
trblm.Item("ewiprice")=tbl.Compute("sum(ewiprice)","")
trblm.Item("ewheji")=tbl.Compute("sum(ewheji)","")
trblm.Item("xpinum")=tbl.Compute("sum(xpinum)","")
trblm.Item("xpiprice")=tbl.Compute("sum(xpiprice)","")
trblm.Item("xpheji")=tbl.Compute("sum(xpheji)","")
tbl.Rows.InsertAt(trblm,0)//将合计插入第一行,插入到DataTable对象中(指定位置的插入操作)
Fori=0Totbl.Rows.Count–1 //统计当前dataTable表中所有行的个数
DimtrAsNewUI.WebControls.TableRow //(此处定义的是一个TableRow控件)
Forj=0Totbl.Columns.Count–1 //统计当前dataTable表中列的个数
DimthecellAsNewUI.WebControls.TableCell//此处定义了一个单元格
thecell.Font.Size=FontUnit.Point(9)
thecell.BorderStyle=BorderStyle.Solid//给每一个单元格的属性赋值
thecell.BorderWidth=Unit.Point(1) //指定了当前表的边框宽度,控制表的美观
IfIsNumeric(IIf(tbl.Rows(i)(j)IsDBNull.Value,"",tbl.Rows(i)(j)))=TrueThen
thecell.HorizontalAlign=HorizontalAlign.Right(指定对齐方式为右对齐)
//指定表中内容的对齐方式,用IF语句判断是数字类型还是文字类型,如为数字类型,则左对齐,反之,右对齐
Else
thecell.HorizontalAlign=HorizontalAlign.Left(指定对齐方式为左对齐)
EndIf
thecell.Wrap=False
thecell.Height=Unit.Pixel(20)//指定当前单元格的高度和宽度
thecell.Width=Unit.Pixel(80)
thecell.RowSpan=1
Ifi=0And(j=4orj=7orj=10)Then
thecell.Text=""
Else
//本循环体中最重要的一句代码
thecell.Text=IIf(tbl.Rows(i)(j)IsDBNull.Value,"",tbl.Rows(i)(j))
EndIf
tr.Cells.Add(thecell) //往TableRow控件添加单元格操作,
//循环一次添加一行。直到DataTable中数据全部读出为止,这样就实现了将数据虚拟表(DataTable)中的数据全部绑定在Table控件上
Next
Table2.Rows.Add(tr) //往Table控件中添加行操作
Next
EndSub
//***************************************下方是一个比较全的例子****************************************
DimcnAsNewSqlClient.SqlConnection(P_Con)
DimcmdAsSqlClient.SqlCommand=cn.CreateCommand
DimadptAsNewSqlClient.SqlDataAdapter(cmd)
DimtblAsNewDataTable
cmd.CommandTimeout=3000
Try
cmd.CommandText=str
adpt.Fill(tbl)
DimtrAsDataRow=tbl.NewRow'生成一个空的数据行(DataTable类型)
tr.Item("cDepCode")=""
tr.Item("cDepName")=""
tr.Item("客户经理")="合计"
tr.Item("累计预算营销费用")=tbl.Compute("sum(累计预算营销费用)","")
tr.Item("累计实际营销费用")=tbl.Compute("sum(累计实际营销费用)","")
tr.Item("余额")=tbl.Compute("sum(余额)","")
tr.Item("实际销额")=tbl.Compute("sum(实际销额)","")
tr.Item("实际销量")=tbl.Compute("sum(实际销量)","")
tr.Item("实际提取营销费")=tbl.Compute("sum(实际提取营销费)","")
tr.Item("实际广告费用")=tbl.Compute("sum(实际广告费用)","")
tr.Item("实际营销费用")=tbl.Compute("sum(实际营销费用)","")
tr.Item("累计营销费用余额")=tbl.Compute("sum(累计营销费用余额)","")
tr.Item("定单销额")=tbl.Compute("sum(定单销额)","")
tr.Item("定单销量")=tbl.Compute("sum(定单销量)","")
tr.Item("订单提取营销费")=tbl.Compute("sum(订单提取营销费)","")
tr.Item("合计")=tbl.Compute("sum(合计)","")
tr.Item("扣除项目")=tbl.Compute("sum(扣除项目)","")
tr.Item("系统已有余额")=tbl.Compute("sum(系统已有余额)","")
tr.Item("本月追加进系统")=tbl.Compute("sum(本月追加进系统)","")
tr.Item("小计")=tbl.Compute("sum(小计)","")
tr.Item("列入营销费预算")=tbl.Compute("sum(列入营销费预算)","")
tbl.Rows.InsertAt(tr,0)'将合计插入到第一行,此处的0指的是数据插入的位置
bind_table(tbl)
CatchexAsException
Throwex
EndTry
EndSub
//===============================================
Subbind_table()Subbind_table(ByValtblAsDataTable)
DimiAsInteger
DimjAsInteger
Fori=0Totbl.Rows.Count-1
DimtrAsNewUI.WebControls.TableRow
Forj=2Totbl.Columns.Count–1//j从2读数据,是因为前两条记录设为空
DimthecellAsNewUI.WebControls.TableCell
thecell.Font.Size=FontUnit.Point(9)//字体的单位是fontunit开始
thecell.BorderStyle=BorderStyle.Solid
thecell.BorderWidth=Unit.Point(1)
IfIsNumeric(IIf(tbl.Rows(i)(j)IsDBNull.Value,"",tbl.Rows(i)(j)))=TrueThen
thecell.HorizontalAlign=HorizontalAlign.Right
Else
thecell.HorizontalAlign=HorizontalAlign.Left
EndIf
thecell.Wrap=False
thecell.Height=Unit.Pixel(20)
thecell.Width=Unit.Pixel(100)
thecell.RowSpan=1
thecell.Text=IIf(tbl.Rows(i)(j)IsDBNull.Value,"",tbl.Rows(i)(j))//给单元格赋值
tr.Cells.Add(thecell)//使用循环读出Table表中所有的数据并转传给Table控件的单元格来接收
Next
Table2.Rows.Add(tr)//Table2为服务器控件Table的ID
Next
EndSub
下方的图是运行效果
分享到:
相关推荐
在VB.NET中,SQLite3是一种轻量级、无服务器、自包含的数据库引擎,常用于桌面应用程序和移动设备。SQLite3提供了高效的本地数据存储,并且与.NET Framework通过ADO.NET服务进行交互。本教程将深入探讨如何在VB.NET...
在VB.NET中,Access数据库常被用于小型项目的数据存储,包括保存和读取不同类型的数据,如文本、数字,甚至图片。本教程将详细介绍如何利用VB.NET与Access数据库交互,实现图片文件的保存与读取,并将结果展示在...
在VB.NET中,数据网格控件(DataGrid)是用于显示和操作数据的常用工具,它可以从各种数据源获取数据,并以表格形式展示出来。在这个场景中,我们将探讨如何使用VB.NET的DataGrid控件与Microsoft Access数据库进行连接...
4. **数据库应用**:在VB.NET中,访问数据库通常使用ADO.NET(.NET Framework的数据访问组件),包括SqlConnection、SqlCommand、SqlDataAdapter和DataSet等类。 5. **SqlConnection**:用于建立与SQL Server的连接...
在VB.NET中,加载数据到GridView控件是一个常见的任务,特别是在开发Windows应用程序时。GridView控件是.NET Framework中用于展示数据的一种强大工具,它允许用户以表格形式查看、编辑和操作数据。本教程将深入探讨...
在VB.NET中操作Access数据库是一项常见的任务,尤其在开发小型数据管理应用时。Access数据库以其易用性和灵活性受到很多开发者青睐。以下将详细介绍如何使用VB.NET进行相关的数据库操作。 首先,确保你已经安装了...
在完成数据读取后,可以将DataTable绑定到DevExpress的GridControl,这样就可以在界面上显示这些数据。以下是一个简单的例子: ```csharp // 假设gridControl1是你的DevExpress GridControl实例 gridControl1....
在VB.NET中,`DataGridView`的使用是初学者和专业开发者都必须掌握的基础技能之一。以下将详细介绍如何实现`DataGridView`的简单增删改查操作。 首先,要实现数据的显示,你需要创建一个`DataGridView`实例并将其...
`GridView`是ASP.NET中非常常用的数据显示控件之一,它可以显示来自各种数据源的数据,如`SqlDataSource`、`ObjectDataSource`等。 - **绑定数据源**:可以通过设置`GridView`控件的`DataSource`属性来指定其数据源...
查询结果可以动态添加到GridView或Repeater等数据绑定控件中,展示给用户。 5. 数据绑定:ASP.NET提供了数据绑定机制,可以将数据库查询结果直接绑定到控件上,如GridView。这样可以轻松地实现数据的显示和排序。 ...
在ASP.NET中,动态添加数据库列是一项常见的任务,特别是在开发高度可配置或用户自定义的系统时。这个过程涉及到在运行时根据用户需求或者特定条件创建数据库表结构。以下是对这个主题的详细解释: 首先,我们需要...
在VB.NET或C#编程中,使用DataGridView控件进行数据操作是常见的做法,尤其是在处理用户界面交互时。DataGridView不仅能够方便地展示数据,还支持直接的增删改查功能,提高了用户使用的便捷性。然而,它内置的Update...
在 VB 项目中使用 SQLite 需要先安装 SQLite 的 .NET 数据提供者,并在项目中添加对它的引用。 9. **示例代码**: 以下是一个简单的 VB 代码示例,演示如何在 SQLite 中创建表格并插入数据: ```vb Dim connStr...
在ASP.NET中,动态生成表格主要涉及到HTML表格元素(`<table>`)、服务器控件(如`GridView`或`DataGrid`)以及数据绑定的概念。下面我们将深入探讨这些知识点: 1. **HTML表格**:`<table>`标签用于创建HTML表格,...
Web控件Repeater是ASP.NET中用于动态展示数据的强大工具,尤其适合自定义复杂的数据布局。它不提供内置的样式和格式化,但允许开发者完全控制数据呈现的方式,通过使用模板来实现高度定制化的界面。 首先,Repeater...
动态生成表格的核心在于编程生成控件,例如在C#或VB.NET中使用TableLayoutPanel或FlowLayoutPanel。在运行时,我们可以根据需要的行数和列数动态创建表格控件,并将其添加到窗体上。例如: ```csharp ...
ASP.NET是由微软开发的服务器端Web应用程序框架,它提供了丰富的工具和库,支持多种编程语言,如C#、VB.NET等。在学生管理网站中,ASP.NET提供了构建动态网页、处理用户请求、与数据库交互的基础架构。 二、页面...
总之,TreeView控件是VB应用程序中展示层次数据的强大工具,通过熟练掌握其基本操作和高级特性,开发者可以构建出功能丰富的用户界面。理解如何添加、管理和响应节点,以及如何优化性能,对于提升VB编程技能至关重要...