Asp.Net 通用数据操作类 (附通用数据基类)第1/2页
发布时间:2020-03-17 23:21:47 所属栏目:Asp教程 来源:互联网
导读:以前经常用php的数据操作类,这次的asp.net数据操作类,是个方法
文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必以明文标注文章原始出处及本声明 作者:浪淘沙 此贴的方法会持续更新, 此文件要引用与数据操作的基类 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace EC { /// <summary> /// EB通用与数据交互操作基类 /// </summary> public class EBCommonObj:IDisposable { private bool _alreadyDispose = false; private DBOperate dbo; private string sql = null; private System.Data.DataSet ds; #region 构造与析构函数 public EBCommonObj() { dbo = new DBOperate(); } ~EBCommonObj() { dbo.Dispose(); Dispose(); } protected virtual void Dispose(bool isDisposing) { if (_alreadyDispose) return; if (isDisposing) { dbo.Dispose(); } _alreadyDispose = true; } #endregion #region IDisposable 成员 public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } #endregion #region 通用删除数据库中的某条记录 /// <summary> /// 通用删除数据库中的某条记录 /// </summary> /// <param name="tbl">数据表名</param> /// <param name="fld">字段名</param> /// <param name="IsInt">是否是int型</param> /// <param name="kev">关键词值</param> public void CommDelByID(string tbl, string fld, bool IsInt, string key) { sql = "delete from {0} where {1}="; if (IsInt) { sql += "{3}"; } else { sql += "'{3}'"; } dbo.ExecuteNonQuery(string.Format(sql, tbl, fld, IsInt, key)); } #endregion #region 通用读取数据库中的某条记录 /// <summary> /// 通用读取数据库中的某条记录 /// </summary> /// <param name="tbl"></param> /// <param name="fld"></param> /// <param name="IsInt"></param> /// <param name="key"></param> /// <returns></returns> public DataSet CommReadByID(string tbl,string fld,bool IsInt,string key) { sql = "select * from {0} where {1}="; if (IsInt) { sql += "{3}"; } else { sql += "'{3}'"; } ds = dbo.GetDataSet(string.Format(sql, tbl, fld, IsInt, key)); return ds; } #endregion #region 修改数据库中的某条记录为true 或flase /// <summary> /// 修改数据库中的某条记录为true 或flase /// </summary> /// <param name="tbl">表格式</param> /// <param name="fld">主键标识</param> /// <param name="Isint">是否整形</param> /// <param name="key">主键</param> /// <param name="flgfld">flase键</param> /// <param name="flgkey">key值</param> public void CommUpdateByID(string tbl,string fld,bool Isint,string key,string flgfld,int flgkey) { sql = "update {0} set {4}={5} where {1}="; if (Isint) { sql += "{3}"; } else { sql += "'{3}'"; } dbo.ExecuteNonQuery(string.Format(sql, tbl, fld, Isint, key, flgfld, flgkey)); } #endregion #region 绑定DropDown 列表 /// <summary> /// 绑定DropDown 列表 /// </summary> /// <param name="tbl">表名</param> /// <param name="selValue">下拉框值</param> /// <param name="selText">下拉框显示内容</param> /// <param name="strWhere">where 条件语句 不用加where 没有条件则为空</param> /// <param name="dr">DropDownList控件名称</param> public void DropBind(string tbl, string selValue, string selText, string strWhere,System.Web.UI.WebControls.DropDownList dr) { ds = GetDrop(tbl, selValue, selText, strWhere); dr.DataSource = ds; dr.DataTextField = selText; dr.DataValueField = selValue; dr.DataBind(); ds.Clear(); ds.Dispose(); } /// <summary> /// 读取表中数据 /// </summary> /// <param name="tbl"></param> /// <param name="selValue"></param> /// <param name="selText"></param> /// <param name="strWhere">条件</param> /// <returns></returns> public DataSet GetDrop(string tbl,string selValue,string selText,string strWhere) { sql = "select {1},{2} from {0} where 1=1 and {3}"; ds = dbo.GetDataSet(string.Format(sql, tbl, selValue, selText, strWhere)); return ds; } #endregion #region 判断是否有数据 /// <summary> /// 判断是否有数据:存在数据时返回true,否则返回Flash /// </summary> /// <param name="tbl">数据表名</param> /// <param name="fld">字段名</param> /// <param name="key">关键词</param> /// <param name="IsKeyInt">是否是数字类型:是:true;否:false</param> /// <returns>true或false</returns> public bool IsHaveDate(string tbl,string fld,string key,bool IsKeyInt) { bool Rev = false; if (IsKeyInt) { sql = "select * from {0} where {1}={2}"; } else { sql = "select * from {0} where {1}='{2}'"; } ds = dbo.GetDataSet(string.Format(sql, tbl, fld, key)); if (ds.Tables[0].Rows.Count > 0) { Rev = true; } return Rev; } #endregion } } /############################################ 版权声明: 文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必标明文章原始出处及本声明 作者:浪淘沙 ############################################/ /********************************************************************************** * * 功能说明:数据操作基类,可以执行内联SQL语句和存储过程 * 作者: 刘功勋; * 版本:V0.1(C#2.0);时间:2006-4-28 * * *******************************************************************************/ using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace EC { /// <summary> /// 数据库连接及操作对象类 /// </summary> public class DBBase { private bool _alreadyDispose = false; private System.Data.SqlClient.SqlConnection conn; private System.Data.SqlClient.SqlCommand com; #region 构造与柝构 public DBBase() { try { conn=new System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]); conn.Open(); com = new System.Data.SqlClient.SqlCommand(); com.Connection = conn; } catch (Exception ee) { throw new Exception("连接数据库出错"); } } ~DBBase() { Dispose(); } protected virtual void Dispose(bool isDisposing) { if (_alreadyDispose) return; if (isDisposing) { // TODO: 此处释放受控资源 if (com != null) { com.Cancel(); com.Dispose(); } if (conn != null) { try { conn.Close(); conn.Dispose(); } catch (Exception ee) { } finally { conn = null; } } } // TODO: 此处释放非受控资源。设置被处理过标记 _alreadyDispose = true; } #endregion #region IDisposable 成员 public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } #endregion #region 数据基本操作 /// <summary> /// ExecuteNonQuery /// </summary> /// <param name="sqlString">SQL语句</param> /// <returns>返回影响行数</returns> public int ExecuteNonQuery(string sqlString) { int ret = 0; com.CommandText = sqlString; com.CommandType = CommandType.Text; try { ret = com.ExecuteNonQuery(); } catch (Exception ee) { throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); } finally { com.Cancel(); } return ret; } /// <summary> /// 执行插入语句返回IDENTITY /// </summary> /// <param name="sqlString">SQL语句</param> /// <returns>@@IDENTITY</returns> public int ExecInsert(string sqlString) { int identity = 0; //仅能执行Insert into 语句 if (!sqlString.ToLower().Contains("insert into")) { return -1; } sqlString += " Select @@IDENTITY"; System.Data.DataSet ds = new DataSet(); try { System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sqlString, conn); da.Fill(ds); da.Dispose(); } catch (Exception ee) { throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); } if (ds.Tables[0].Rows.Count > 0) { identity =Convert.ToInt32(ds.Tables[0].Rows[0][0]); } ds.Clear(); ds.Dispose(); return identity; } /// <summary> /// 执行SQL语句返回记录集 /// </summary> /// <param name="sqlString">SQL语句</param> /// <returns>DataSet</returns> public DataSet GetDataSet(string sqlString) { System.Data.DataSet ds = new DataSet(); try { System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sqlString, conn); da.Fill(ds); da.Dispose(); } catch (Exception ee) { throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); } return ds; } /// <summary> /// 执行存储过程(返回N种参数) /// </summary> /// <param name="procName">过程名</param> /// <param name="hashtable">传入的参数表</param> /// <param name="hashtable1">传出的参数表</param> /// <returns>返回参数表</returns> public System.Collections.Hashtable ExecProcedure(string procName, System.Collections.Hashtable hashtable, System.Collections.Hashtable hashtable1) { System.Collections.Hashtable hashtable2 = new System.Collections.Hashtable(); System.Collections.IDictionaryEnumerator ide = hashtable.GetEnumerator(); System.Collections.IDictionaryEnumerator ide1 = hashtable1.GetEnumerator(); com.CommandType = CommandType.StoredProcedure; com.CommandText = procName; while (ide.MoveNext()) { System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter(ide.Key.ToString(), ide.Value); com.Parameters.Add(p); } while (ide1.MoveNext()) { System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter(ide1.Key.ToString(), ide.Value); com.Parameters.Add(p); } try { com.ExecuteNonQuery(); ide1 = hashtable1.GetEnumerator(); while (ide1.MoveNext()) { string k = ide1.Key.ToString(); hashtable2.Add(k, com.Parameters[k].Value); } } catch (Exception ee) { throw new Exception(ee.Message.ToString()); } finally { com.Cancel(); } return hashtable2; } 1 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |