用于快速开发的数据访问类1.1版
//--名称:SQL数据库访问基类 //--功能:一般ADO.NET原理,数据装箱坼箱及通用数据库控件绑定 //--背景:针对一些个人形式外包,要求快速开发的数据库中小型项目特写此类供页面直接调用 //--创建人:KingWei //--创建日期:2010-02-20 using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Web.UI.WebControls; using System.Web.UI; using System.Web; namespace KingWei { /// <summary> /// 数据库访问基类(for SQL) /// </summary> public class DBHelper:IDisposable { #region 成员 private SqlConnection Conn = null; private SqlTransaction tran = null; /// <summary> /// 事务标识 /// </summary> public bool IsTran { get; set; } #endregion #region 构造函数,SqlConnection对象初始化 public DBHelper() { Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); } public DBHelper(string ConnectionKey) { Conn = new SqlConnection(ConfigurationManager.ConnectionStrings[ConnectionKey].ConnectionString); } #endregion #region 数据库事务 /// <summary> /// 事务开始 /// </summary> public void BeginTran() { OpenDB(); tran = Conn.BeginTransaction(IsolationLevel.ReadCommitted); IsTran = true; } /// <summary> /// 回滚事务 /// </summary> public void RollbackTran() { tran.Rollback(); IsTran = false; } /// <summary> /// 提交事务 /// </summary> public void CommitTran() { tran.Commit(); IsTran = false; } #endregion #region SqlParameter对象创建 private SqlParameter CreateSqlParameter(string paraName,DbType paraType,int paraSize, ParameterDirection paraDirection, object paraValue) { SqlParameter para = new SqlParameter(); para.DbType = paraType; para.Direction = paraDirection; para.ParameterName = paraName; if (paraSize > 0) { para.Size = paraSize; } para.Value = paraValue; return para; } public SqlParameter CreateInSqlParameter(string paraName, DbType paraType, object paraValue) { return CreateSqlParameter(paraName, paraType, 0, ParameterDirection.Input, paraValue); } public SqlParameter CreateInSqlParameter(string paraName, DbType paraType,int paraSize, object paraValue) { return CreateSqlParameter(paraName, paraType, paraSize, ParameterDirection.Input, paraValue); } public SqlParameter CreateOutSqlParameter(string paraName, DbType paraType, object paraValue) { return CreateSqlParameter(paraName, paraType, 0, ParameterDirection.Output, paraValue); } public SqlParameter CreateOutSqlParameter(string paraName, DbType paraType, int paraSize, object paraValue) { return CreateSqlParameter(paraName, paraType, paraSize, ParameterDirection.Output, paraValue); } #endregion #region 常用ADO.NET方法 /// <summary> /// OpenDB /// </summary> private void OpenDB() { if (Conn.State != ConnectionState.Open) { try { Conn.Open(); } catch (SqlException ex) { throw ex; } } } /// <summary> /// 初始化一个SqlCommand对象 /// </summary> private void CreateCommand(SqlCommand cmd,CommandType cmdType, string cmdText, SqlParameter[] SqlParas) { if (IsTran) { cmd.Transaction = tran; } else { OpenDB(); } cmd.Connection = Conn; cmd.CommandType = cmdType; cmd.CommandText = cmdText; if (SqlParas !=null) { foreach (SqlParameter p in SqlParas) { cmd.Parameters.Add(p); } } } /// <summary> /// 执行SQL返回一个DataSet /// </summary> public DataSet ExecuteQuery(CommandType cmdType,string cmdText,SqlParameter[] SqlParas) { using (SqlCommand cmd = new SqlCommand()) { CreateCommand(cmd, cmdType, cmdText, SqlParas); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { DataSet ds = new DataSet(); da.Fill(ds); return ds; } } } /// <summary> /// 执行SQL返回受影响的行数 /// </summary> public int ExecuteNonQuery(CommandType cmdType, string cmdText, SqlParameter[] SqlParas) { using (SqlCommand cmd = new SqlCommand()) { CreateCommand(cmd, cmdType, cmdText, SqlParas); return cmd.ExecuteNonQuery(); } } /// <summary> /// 重载一:执行SQL返回第一行第一列的值 /// </summary> public object ExecuteScalar(CommandType cmdType, string cmdText, SqlParameter[] SqlParas) { using (SqlCommand cmd = new SqlCommand()) { CreateCommand(cmd, cmdType, cmdText, SqlParas); return cmd.ExecuteScalar(); } } /// <summary> /// 重载二:执行SQL返回第一行第一列的值,可传参取代返回值为NULL的情况 /// </summary> public string ExecuteScalar(CommandType cmdType, string cmdText, SqlParameter[] SqlParas,string WhenNull) { using (SqlCommand cmd = new SqlCommand()) { CreateCommand(cmd, cmdType, cmdText, SqlParas); object result = cmd.ExecuteScalar(); return result == null?WhenNull:result.ToString(); } } /// <summary> /// 执行一段SQL,返回一个DataReader对象 /// </summary> public SqlDataReader ExecuteDataReader(CommandType cmdType, string cmdText, SqlParameter[] SqlParas) { using (SqlCommand cmd = new SqlCommand()) { CreateCommand(cmd, cmdType, cmdText, SqlParas); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } } /// <summary> /// 常用分页方法 /// </summary> /// <param name="PageSize">页面大小</param> /// <param name="RecordCount">记录总量</param> /// <param name="CurruntPageIndex">当前位置</param> /// <param name="TableName">表名/视图名</param> /// <param name="Condition">查询条件</param> /// <param name="IsAsc">是否升序排序</param> /// <param name="OrderBy">按哪些字段排序</param> /// <returns></returns> private SqlDataReader GetPageSql(string condition, Int16 pageSize, Int16 pageIndex, string tbNames, string sortNames, bool sortType) { System.Text.StringBuilder PageSql = new System.Text.StringBuilder(); string tbname, tbsortname, type; type = sortType ? "ASC" : "DESC"; tbname = tbNames.ToUpper().IndexOf("SELECT") >= 0 ? "(" + tbNames + ")" + " as DBHelper" : tbNames + " as DBHelper"; tbsortname = tbNames.ToUpper().IndexOf("SELECT") >= 0 ? "(" + tbNames + ") as DBHelperID" : tbNames + " as DBHelperID"; if (pageIndex == 1) { PageSql.Append("select top " + pageSize.ToString() + " DBHelper.* from " + tbname + (!string.IsNullOrEmpty(condition) ? " where " + condition : string.Empty) + " order by " + sortNames + " " + type); } else { PageSql.AppendFormat("Select top {0} DBHelper.* from ", pageSize); PageSql.AppendFormat("{0}", tbname); PageSql.AppendFormat(" where DBHelper.{0} not in(select top {1} DBHelperID.{0}", sortNames.Substring(sortNames.LastIndexOf(",") + 1, sortNames.Length - sortNames.LastIndexOf(",") - 1), pageSize * (pageIndex - 1)); PageSql.AppendFormat(" from {0}", tbsortname); if (!string.IsNullOrEmpty(condition)) { PageSql.AppendFormat(" where {0} order by {1} {2}) and {0}", condition, sortNames, type); } else { PageSql.AppendFormat(" order by {0} {1})", sortNames, type); } PageSql.AppendFormat(" order by {0} {1}", sortNames, type); } return ExecuteDataReader(CommandType.Text, PageSql.ToString(), null); } /// <summary> /// 手动关闭数据库连接对象 /// </summary> public void CloseDB() { if (!object.Equals(Conn, null) && Conn.State != ConnectionState.Closed) { Conn.Close(); } } #endregion #region 数据类型转换 public string ToStr(object obj) { if (object.Equals(obj, DBNull.Value) || string.IsNullOrEmpty(obj.ToString())) return ""; else return obj.ToString(); } public int ToInt(object obj) { if (object.Equals(obj,DBNull.Value)||object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return 0; else return Convert.ToInt32(obj); } public Int16 ToInt16(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return 0; else return Convert.ToInt16(obj); } public double ToDouble(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return 0; else return Convert.ToDouble(obj); } public Single ToSingle(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return 0; else return Convert.ToSingle(obj); } public bool ToBool(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null)) return false; else return Convert.ToBoolean(obj); } public DateTime ToDateTime(object obj) { try { DateTime dt; DateTime.TryParse(Convert.ToString(obj), out dt); return dt; } catch { return DateTime.MinValue; } } public DateTime? ToNullDate(object obj) { if (object.Equals(obj, DBNull.Value)) return null; else try { DateTime dt; DateTime.TryParse(Convert.ToString(obj), out dt); return dt; } catch { return null; } } public int? ToNullInt(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return null; else return Convert.ToInt32(obj); } public Int16? ToNullInt16(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return null; else return Convert.ToInt16(obj); } public double? ToNulldouble(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return null; else return Convert.ToDouble(obj); } public Single? ToNullSingle(object obj) { if (object.Equals(obj, DBNull.Value) || object.Equals(obj, null) || string.IsNullOrEmpty(obj.ToString())) return null; else return Convert.ToSingle(obj); } #endregion #region 常用控件数据绑定 public enum SelType { ByValue, ByText } /// <summary> /// 列表型数据控件绑定 /// </summary> public void ListBind(ListControl LstCtrl,object Lst) { LstCtrl.DataSource = Lst; LstCtrl.DataBind(); } /// <summary> /// 绑定GridView /// </summary> public void GrdBind(GridView grdView, object Lst) { grdView.DataSource = Lst; grdView.DataBind(); } /// <summary> /// 绑定GridView,并为指定的一列加上序号 /// </summary> public void GrdBind(GridView grdView, object Lst, int InsertNo) { GrdBind(grdView, Lst); for (int i = 0; i < grdView.Rows.Count; i++) { grdView.Rows[i].Cells[InsertNo].Text = (i + 1).ToString(); } } /// <summary> /// 绑定DropDownList /// </summary> public void DdlBind(DropDownList ddlList, object Lst) { ddlList.DataSource = Lst; ddlList.DataBind(); } /// <summary> /// 绑定DropDownList,指定文本及值的绑定项 /// </summary> public void DdlBind(DropDownList ddlList, Object Lst, string TextField, string ValueField) { ddlList.DataSource = ddlList; ddlList.DataTextField = TextField; ddlList.DataValueField = ValueField; ddlList.DataBind(); } /// <summary> /// 绑定DropDownList,指定文本及值的绑定项,插入一个名为defaultStr的默认项 /// </summary> public void DdlBind(DropDownList ddlList, Object Lst, string TextField, string ValueField, string defaultStr) { DdlBind(ddlList, Lst, TextField, ValueField); ddlList.Items.Insert(0, defaultStr); } /// <summary> /// 绑定DropDownList,指定文本及值的绑定项,使DropDownList选择默认的值 /// </summary> public void DdlBind(DropDownList ddlList, Object Lst, string TextField, string ValueField,SelType FindType, string FindStr) { DdlBind(ddlList, Lst, TextField, ValueField); int selectIndex = -1; for (int i = 0; i < ddlList.Items.Count; i++) { switch (FindType) { case SelType.ByText: if (ddlList.Items[i].Text == FindStr) { selectIndex= i; } break; case SelType.ByValue: if (ddlList.Items[i].Value == FindStr) { selectIndex = i; } break; } if (selectIndex > -1) { ddlList.SelectedIndex = selectIndex; break; } } } #endregion #region 常用客户端脚本 /// <summary> /// 弹出提示框 /// </summary> public void Alert(Page page, string msg) { string js = @"alert('" + msg + "')"; if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "Alert")) page.ClientScript.RegisterStartupScript(page.GetType(), "Alert", js, true); } /// <summary> /// 弹出提示框并跳转到指定页面 /// </summary> public void AlertAndRedirect(Page page, string msg, string ToURL) { string js = @"alert('{0}');window.location.replace('{1}');"; js = string.Format(js, msg, ToURL); if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "AlertAndRedirect")) page.ClientScript.RegisterStartupScript(page.GetType(), "AlertAndRedirect", js, true); } /// <summary> /// 返回历史 /// </summary> public void GoHistory(Page page, int value) { string js = @"history.go('{0}')"; if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "GoHistory")) page.ClientScript.RegisterStartupScript(page.GetType(), "GoHistory", string.Format(js, value), true); } /// <summary> /// 关闭并使父窗口根据URL刷新 /// </summary> public void RefreshParent(Page page, string url) { string js = @"window.openner.location.href='{0}'; window.close();"; if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "RefreshParent")) page.ClientScript.RegisterStartupScript(page.GetType(), "RefreshParent", string.Format(js, url), true); } //// <summary> /// 打开指定大小的新窗体 /// </summary> /// <param name="url">地址</param> /// <param name="width">宽</param> /// <param name="heigth">高</param> /// <param name="top">头位置</param> /// <param name="left">左位置</param> /// <param name="scoll">是否带滚动条</param> public void OpenWebFormSize(string url, int width, int heigth, int top, int left, bool scoll, Page page) { string js = @"window.open('" + url + @"','','height=" + heigth + ",width=" + width + ",top=" + top + ",left=" + left + "," + "location=no,menubar=no,resizable=no,scrollbars=" + (scoll ? "yes" : "no") + ",status=yes,titlebar=no,toolbar=no,directories=no');"; if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "OpenWebFormSize")) { page.ClientScript.RegisterStartupScript(page.GetType(), "OpenWebFormSize", js, true); //HttpContext.Current.Server.Transfer } } public void OpenModalDialog(string ModalDialogURL, string parentwin, Page page) { string js = @"window.showModalDialog('{0}','{1}');"; js = string.Format(js, ModalDialogURL, parentwin); //if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "OpenModalDialog")) // page.ClientScript.RegisterStartupScript(page.GetType(), "OpenModalDialog", js, true); HttpContext.Current.Response.Write("<script>" + js + "</script>"); } /// <summary> /// 转向指定路径 /// </summary> public void TransferURL(Page page, string URL) { string js = @"window.location.href='{0}'"; js = string.Format(js, URL); if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "TransferURL")) { page.ClientScript.RegisterStartupScript(page.GetType(), "TransferURL", js, true); } } /// <summary> /// 执行JS /// </summary> public void WriteJs(Page page, string js) { page.ClientScript.RegisterStartupScript(page.GetType(), "WriteJs", js, true); } /// <summary> /// 关闭窗口 /// </summary> public void CloseWindow(Page page) { string js = @"window.close()"; if (!page.ClientScript.IsStartupScriptRegistered(page.GetType(), "CloseWindow")) { page.ClientScript.RegisterStartupScript(page.GetType(), "CloseWindow", js, true); } } #endregion #region IDisposable 成员 public void Dispose() { if(Conn != null) Conn.Dispose(); if (tran != null) tran.Dispose(); } #endregion } }
1.1版本新增常用脚本操作.
相关推荐
文件"yii-1.1.2.r2086"可能是Yii 1.1.2的特定版本或修订版,它包含了该框架的所有源代码和资源文件,供开发者下载并用于项目开发。安装和使用Yii框架通常涉及到下载这个压缩包,解压后配置好环境,然后根据项目需求...
使用这个SQL脚本,开发人员或DBA可以在新的环境中快速地搭建与原始系统相同的数据结构,并导入相同的数据,以便于测试、备份或迁移。此外,通过分析这个脚本,我们还可以了解商品管理系统的数据模型设计,包括数据的...
Yii1.1框架是用PHP语言开发的一个高性能的Web应用开发框架,它的目标是促进快速开发并简化企业级的应用开发。Yii1.1作为一个成熟的框架,在2016年之后便停止更新,不过由于其优秀的性能和设计理念,对于仍在使用 Yii...
【Winform快速开发框架】是一种基于Windows Forms(Winform)技术的高效开发工具,它针对企业级应用提供了便捷的框架支持。这个框架的核心特点是利用基类的三层架构,旨在简化开发过程,提高代码复用性,同时保持...
JDOM 1.1的官方文档详尽全面,包含了大量的示例代码和教程,帮助开发者快速上手。同时,活跃的社区提供了丰富的资源和问题解答,使得学习和使用JDOM变得更加容易。 总的来说,JDOM 1.1作为Java处理XML的首选库之一...
7. API接口:如果应用支持移动设备,可能还包括RESTful API的设计和实现,用于前后端分离,提供跨平台的数据交换。 8. 安全性:社区应用需防范SQL注入、XSS攻击等安全问题,源码中应有相应的防护措施。 9. 性能...
这些组件是实现OPC DA服务器功能的基础,包括OPC数据访问接口的实现,以及与OPC客户端通信所需的各种功能。 总的来说,OPCSTOPCDA服务器开发包1.1提供了完整的框架和工具,让开发者能够创建自己的OPC DA服务器,...
标题中的"ADJUST1.1.zip"显然是一款与EEG(脑电图)处理相关的软件或工具包,可能是一个更新版本或插件,用于改善EEG数据的质量。EEG是神经科学领域常用的非侵入性技术,用于记录大脑的电活动。在分析EEG数据时,...
这个库提供了对JSP 2.0表达式语言的支持,使得开发者可以在JSP页面中使用EL语法进行数据访问和操作。EL是一种轻量级的脚本语言,用于简化JSP中的数据绑定和表达式处理。 将`jstl1.1.jar`和`standard1.1.jar`一起...
CodeEngine1.1会自动生成这一层的代码,如ADO.NET或Entity Framework的数据访问类,使得数据操作更加便捷。 2. **业务逻辑层(BLL)**:位于中间层,负责处理业务规则和流程。这一层的代码通常包含业务对象和业务...
`activation-1.1.jar`库正是用于处理Java应用程序中的邮件激活和解析功能,它是JavaMail API的一个重要组成部分,对于进行邮件相关的开发工作至关重要。 JavaMail API是一个开源的Java库,它提供了与邮件服务器交互...
"Axis1.1lib包"是针对Axis1.1版本的Web服务开发工具包,它在早期的Java Web服务开发中扮演了重要角色。Axis是一个开源项目,由Apache软件基金会维护,专门用于创建、部署和管理基于SOAP(简单对象访问协议)的Web...
Kotlin的用途十分广泛,文档中提到它不仅可以用在服务器端开发,还非常适合用于Android开发和JavaScript环境。在服务器端,Kotlin支持与Java技术栈完全兼容,同时提供了富有表现力的语言特性,例如类型安全的构建器...
在实际开发中,实体类通常会结合ORM(对象关系映射)框架如Entity Framework、NHibernate等使用,这些框架可以自动将数据库操作转化为对象操作,进一步简化了数据访问层的代码。C#实体类生成工具生成的代码可以无缝...
在这个结构中,数据访问类位于数据访问层,负责处理与数据库的所有交互,从而将数据管理与用户界面和业务逻辑分离,提高了代码的可维护性和可重用性。 描述中提到的“一个关于SQL的学生数据库访问的类”可能包含对...
2. **模型层**:包含业务实体类,用于数据处理和存储,可能还包括数据访问对象(DAO)或实体框架(Entity Framework)等ORM工具。 3. **控制器**:处理HTTP请求,调用服务或业务逻辑,并返回视图结果。它们是连接...
1. **Base Class Library (BCL)**:这是.NET框架的基础,提供了一组通用的类,涵盖了数据访问、文件操作、网络通信、字符串处理等多个领域。例如,System.IO命名空间中的类用于处理输入/输出操作,如FileStream、...
【描述】:“net快速开发框架 EF MVC Bootstrap的通用后台管理”是指利用.NET技术栈,结合Entity Framework(EF)进行数据访问,Model-View-Controller(MVC)架构设计模式以及Bootstrap前端框架,构建出的一种高效...
这样,业务逻辑与数据访问被有效地解耦,提高了代码的可维护性和可测试性。 使用Struts 1.1和JDBC驱动进行数据库操作时,还需要注意以下几点: 1. 数据库连接的关闭:在完成数据库操作后,应及时关闭Statement和...
《我行我素留言 v1.1 修改版》是一款基于互联网的互动交流工具,主要用于提供一个平台让访客能够在网站上留下他们的信息、意见或建议。这个修改版可能相对于原版进行了一些功能优化或者错误修复,以提升用户体验。在...