C# Web控件与数据感应之 BaseDataList 类

05-09 阅读 0评论

目录

关于数据感应

BaseDataList 类

范例运行环境

pageview 方法

设计

实现

调用示例

数据源

调用

小结


关于数据感应

数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,本文将继续介绍以与数据库提取数据并捆绑控件为例,讲解 C# 创建适用于 BaseDataList 类(如DataGrid)的通用分页数据显示方法。

BaseDataList 类

BaseDataList 类是包括如 DataList 、DataGrid 服务器控件的基类,本文我们以 DataGrid 服务器控件控件,并结合 MS SQL SERVER 和 达梦数据库,以数据分页的形式,绑定 DataGrid进行显示。

更多 BaseDataList 类的介绍请参照如下链接:

https://learn.microsoft.com/ZH-CN/dotnet/api/system.web.ui.webcontrols.basedatalist?view=netframework-4.8.1&viewFallbackFrom=net-7.0

范例运行环境

操作系统: Windows Server 2019 DataCenter

.net版本: .netFramework4.7.1 或以上

开发工具:VS2019  C#

数据提取:在这里我们以能够支持 MS SQL Server 2016、国产达梦数据 8 的通用数据库内容提取方法为例, 生成数据源需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章:

《C#实现 IDbConnection / IDbCommand 等相关通用数据接口》

pageview 方法

设计

pageview 方法内置了分页函数写法(目前支持 MS SQL Server 2016 和国产达梦 8 数据库 ),另外传递SQL关键命令及配置相关参数,将数据源分页感应到指定的 BaseDataList 类控件上,其参数说明如下表:

序号参数名类型说明
1DbServerTypestring目前支持 "oracle"、 "dm8",其它字符串均视为 MS SQL Server
2strConnstring对应数据库的连接字符串
3webctlsstring[]

对应的信息标签和选择框的ID集合,如果不指定则按默认值处理,即:

webctls[0]="q_pageno"; //当前页

webctls[1]="q_pagecount"; //总页数

webctls[2]="q_recordcount"; //总记录数

webctls[3]="q_pagesize"; //可选择的每页记录数

webctls[4]="q_pageno_label"; //可选择的每页记录数

4navsenderstring

导航按钮的 CommandArgument,

nav1 表示首页,nav2 表示上一页,nav3表示下一页,nav4表示最后一页

5dbgrid

System.Web.UI.WebControls.

BaseDataList

用于捆绑 BaseDataList 的控件,如DataGrid

6DisplayFieldListstring用于捆绑到 BaseDataList 的控件上的字段列表,以逗号进行分隔
7SelectedFieldListstringSQL 查询语句的 select 部分,即查询字段列表,DisplayFieldList 参数是它的子集
8OrderFieldListstringSQL 查询语句的 order by  部分,字段以逗号进行分隔
9FromTableListstringSQL 查询语句的 from  部分,表名以逗号进行分隔
10WhereStatementsstringSQL 查询语句的 where  条件部分, 字符串需要书写 where 字样 
11parasArrayList查询条件中的参数对象集合
12keyfieldstring查询结果集的唯一标识字段,用于统计总数
13OuterFromTableListstring是否有用于左、右连接的表名列表
14OuterWhereStatementsstring用于左、右连接的查询条件
15movWhereToOuterbool是否用左、右连接查询条件替代where查询条件(如果需要)
16GroupFuncsArrayList一组需要特殊指定的统计变量值,其添加string[]对象,string[0] 存储字段名,string[1]存储变量名

实现

pageview 方法完整代码如下:

public string pageview(string DbServerType,string strConn,string[] webctls,string navsender,System.Web.UI.WebControls.BaseDataList dbgrid,string DisplayFieldList,string SelectedFieldList,string OrderFieldList,string FromTableList,string WhereStatements,ArrayList paras,string keyfield,string OuterFromTableList,string OuterWhereStatements,bool movWhereToOuter,ArrayList GroupFuncs)
{
			
			string[] defaultobj=new string[5];
			defaultobj[0]="q_pageno"; //当前页
			defaultobj[1]="q_pagecount"; //页总数
			defaultobj[2]="q_recordcount"; //总记录数
			defaultobj[3]="q_pagesize"; //可选择的每页记录数
			defaultobj[4]="q_pageno_label"; //可选择的每页记录数
			
			if(webctls==null)
			{
				webctls=defaultobj;
			}
			if(webctls.GetLength(0)_npc)
			{
				_now=_npc;
			}
			if(_now

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]