net调用MYSQL存储过程实现分页_再上数据分页控件(不用存储过程)

namespaceDotNet.Controls

{//分页控件(使用代码实现,不用存储过程)///UcPageControlByCode///修改纪录//2010-01-06 胡勇 修改转到某页由原来的KeyPress方法改为KeyDown,让用户按回车键确认转页,以防止连续绑定两次。///2011-01-06 胡勇 增加对分页控件的初始化代码:public DataTable InitializePageControl()。///2011-01-05 胡勇 创建分页控件///2011-04-02 胡勇 优化代码、减少不必要的私有变量,去掉多余的代码/胡勇///80368704///80368704@qq.com//[ToolboxItem(true)]

[DefaultEvent("OnEventPageClicked")]

[ToolboxBitmap(typeof(UcPageControlByCode),"Images.UcPageControlByCodeIcon.png")]

[Description("分页控件(使用代码实现,不用存储过程)")]publicpartialclassUcPageControlByCode : UserControl

{#region私有变量intrecordCount=0;//记录数intpageCount=0;//总页数intpageIndex=0;//当前页#endregion#region自定义事件//单击分页按钮(第一页、上一页、下一页、最后页、跳页)时发生///[Category("UcPageControlByCode"), Description("单击分页按钮时发生")]publiceventEventHandler OnEventPageClicked;#endregion#region自定义属性privateint_pageSize=50;//分页大小privatestring_sqlWhereStatement=string.Empty;//MsSql Where语句privatestring_sqlConnString=string.Empty;//MsSql 数据库连接字符串privatestring_tableName=string.Empty;//表名privatestring_orderField=string.Empty;//数据表的排序字段privatestring_primaryKey=string.Empty;//数据表的主键privatestring_queryFieldList="*";//字段列表(默认为:*)privateDataTable _pageTable=newDataTable();//返回当前页码///publicintPageIndex

{get{returnpageIndex+1;

}

}//得到或设置分页大小(默认为:50)///[Browsable(true), Category("UcPageControlByCode"), Description("得到或设置分页大小(默认为:50)")]publicintPageSize

{get{return_pageSize;

}set{

_pageSize=value;

}

}//SQL语句的Where表达式///[Browsable(false), Category("UcPageControlByCode"), Description("得到或设置SQL语句的Where表达式")]publicstringSqlWhereStatement

{get{return_sqlWhereStatement;

}set{

_sqlWhereStatement=value;

}

}//得到或设置SqlServer的连接字符串///[Browsable(false), Category("UcPageControlByCode"), Description("得到或设置SqlServer的连接字符串")]publicstringSqlConnString

{get{return_sqlConnString;

}set{

_sqlConnString=value;

}

}//得到用户单击分页按钮后返回的DataTable///[Browsable(false), Category("UcPageControlByCode"), Description("得到用户单击分页按钮后返回的DataTable")]publicDataTable PageTable

{get{return_pageTable;

}

}//设置或得到与分页控件绑定的表名或视图名///[Browsable(true), Category("UcPageControlByCode"), Description("设置或得到与分页控件绑定的表名或视图名")]publicstringTableName

{get{return_tableName;

}set{

_tableName=value;

}

}//设置或得到分页控件排序字段///[Browsable(true), Category("UcPageControlByCode"), Description("设置或得到分页控件排序字段")]publicstringOrderField

{get{return_orderField;

}set{

_orderField=value;

}

}//设置或得到分页控件绑定数据表的主键///[Browsable(true), Category("UcPageControlByCode"), Description("设置或得到分页控件绑定数据表的主键")]publicstringPrimaryKey

{get{return_primaryKey;

}set{

_primaryKey=value;

}

}//设置或得到分页控件绑定的字段列表(默认为:*)///[Browsable(true), Category("UcPageControlByCode"), Description("设置或得到分页控件绑定的字段列表(默认为:*)")]publicstringQueryFieldList

{get{return_queryFieldList;

}set{

_queryFieldList=value;

}

}#endregion#region构造函数//分页控件(使用代码实现,不用存储过程)///publicUcPageControlByCode()

{

InitializeComponent();

}#endregion#region分页实现相关代码#regionvoid SetUcPageControlPars(string connStr, string whereStatement, string tbName, string orderField, string primaryKeyName, string fieldList):给UcPageControlByCode控件传递必需参数//给UcPageControlByCode控件传递必需参数//连接字符串///MsSql Where语句///数据表名或视力名///排序字段///主键值///字段列表(默认为:*)publicvoidSetUcPageControlPars(stringconnStr,stringwhereStatement,stringtbName

,stringorderField,stringprimaryKeyName,stringfieldList)

{if(string.IsNullOrEmpty(connStr.Trim()))

{

DialogHelper.ShowErrorMsg("温馨提示:\n无可用的数据库连接!");return;

}else{this.SqlConnString=connStr;

}this.SqlWhereStatement=whereStatement;this.TableName=tbName;this.OrderField=orderField;this.PrimaryKey=primaryKeyName;if(!string.IsNullOrEmpty(fieldList.Trim()))

{this.QueryFieldList=fieldList;

}

}#endregion#regionDataTable InitializePageControl():初始化UcPageControlByCode//绑定UcPageControlByCode(并返回包含当前页的DataTable)//DataTablepublicDataTable BindPageControl()

{

recordCount=GetTotalRecordCount();//获取总记录数pageCount=recordCount/PageSize-ModPage();//保存总页数(减去ModPage()函数防止SQL语句执行时溢出查询范围,可以用存储过程分页算法来理解这句)pageIndex=0;//保存一个为0的页面索引值到pageIndexlblPageCount.Text=(recordCount/PageSize+OverPage()).ToString();//显示lblpageCount、lblrecCount的状态lblRecCount.Text=recordCount.ToString();if(recordCount<=PageSize)

{

txtGoToPage.Enabled=false;

}else{

txtGoToPage.Enabled=true;

}returnTDataBind();

}#endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值