天天看点

我的数据访问层的源代码(一)

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

using  System;

我的数据访问层的源代码(一)

using  System.Data;

我的数据访问层的源代码(一)

using  System.Data.SqlClient;

我的数据访问层的源代码(一)

using  JYK.DataStruct;             // 结构,用于“实体类”

我的数据访问层的源代码(一)

// using System.Security.Principal;

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

namespace  JYK

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

... {

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

    /// <summary>

我的数据访问层的源代码(一)

    /// 存储过程的参数的类型,在输出型的参数里使用。

我的数据访问层的源代码(一)

    /// </summary>

我的数据访问层的源代码(一)

    public enum ParameterKind

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

    ...{

我的数据访问层的源代码(一)

        Int,Double,Decimal,NVarChar,Bit

我的数据访问层的源代码(一)

    }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

    /// <summary>

我的数据访问层的源代码(一)

    /// 这是一个通用的数据访问层接口。对ADO.NET的封装。功能类似于 SQLHelper ,但是比SQLHelper要简洁和高效。

我的数据访问层的源代码(一)

    /// </summary>

我的数据访问层的源代码(一)

    public sealed class DataAccessLayer

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

    ...{

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        属性#region 属性

我的数据访问层的源代码(一)

        private static string errorMsg;                    //出错信息

我的数据访问层的源代码(一)

        private static bool  isShowErrorSQL;            //是否显示出错的查询语句(包括存储过程名程)

我的数据访问层的源代码(一)

        private int executeRowCount;                    //获取执行SQL查询语句后影响的行数

我的数据访问层的源代码(一)

        private SqlCommand cm ;                            //建立Command对象

我的数据访问层的源代码(一)

        private SqlTransaction sqlTrans ;                //用于事务处理

我的数据访问层的源代码(一)

        private static bool isUseTrans;                    //是否启用了 .net 的事务处理

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 读取出错信息

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public string ErrorMsg            

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            get...{return errorMsg;}

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 修改连接字符串,在同时访问两个或两个以上的数据库的时候使用

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public string cnString            

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            set...{cm.Connection.ConnectionString = value;}

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            get...{return cm.Connection.ConnectionString;}

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 获取执行SQL查询语句后影响的行数

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public int ExecuteRowCount            

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            get...{return executeRowCount;}

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 释放资源

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public void Dispose()

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            if (isUseTrans)

我的数据访问层的源代码(一)

                sqlTrans.Dispose();

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            errorMsg = null;

我的数据访问层的源代码(一)

            cm.Parameters.Clear();

我的数据访问层的源代码(一)

            cm.Connection.Close();

我的数据访问层的源代码(一)

            cm.Dispose();

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)

        #endregion

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        public DataAccessLayer()    //构造函数

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            //默认不使用事务

我的数据访问层的源代码(一)

            isUseTrans = false;        

我的数据访问层的源代码(一)

            //获取连接字符串

我的数据访问层的源代码(一)

            cm = new SqlCommand();

我的数据访问层的源代码(一)

            cm.Connection = new SqlConnection("获取连接字符串");

我的数据访问层的源代码(一)

            //JYK.Connection.ConnectionString

我的数据访问层的源代码(一)

            //初始化错误信息

我的数据访问层的源代码(一)

            errorMsg="0";    

我的数据访问层的源代码(一)

            isShowErrorSQL = true;  //本地运行,显示出错的查询语句(包括存储过程名程)

我的数据访问层的源代码(一)

            //isShowErrorSQL = false; //服务器运行,不显示出错的查询语句(包括存储过程名程)

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        内部函数#region 内部函数

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        //设置初始值

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 设置 errorMsg = "0" ;cm.CommandText 和 cm.CommandType

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        /// <param name="commandText">查询语句或者存储过程</param>

我的数据访问层的源代码(一)

        /// <param name="commandType">1:存储过程;2:查询语句</param>

我的数据访问层的源代码(一)

        private void SetCommand(string commandText,int commandType)

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            errorMsg = "0";                            //清空错误信息

我的数据访问层的源代码(一)

            executeRowCount = 0;

我的数据访问层的源代码(一)

            cm.CommandText = commandText;

我的数据访问层的源代码(一)

            if (commandType == 1)

我的数据访问层的源代码(一)

                cm.CommandType = CommandType.Text;

我的数据访问层的源代码(一)

            else

我的数据访问层的源代码(一)

                cm.CommandType = CommandType.StoredProcedure;

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        //设置出错信息

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 当发生异常时,所作的处理

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        /// <param name="FunctionName">函数名称</param>

我的数据访问层的源代码(一)

        /// <param name="commandText">查询语句或者存储过程</param>

我的数据访问层的源代码(一)

        /// <param name="message">错误信息</param>

我的数据访问层的源代码(一)

        private void SetErrorMsg(string FunctionName,string commandText,string message)

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            //设置返回到上一层的错误信息

我的数据访问层的源代码(一)

            errorMsg = FunctionName + "函数出现错误。<BR>错误信息:" + message;

我的数据访问层的源代码(一)

            if (isShowErrorSQL )  errorMsg +="<BR>查询语句:" + commandText ;

我的数据访问层的源代码(一)

            if (isUseTrans)

我的数据访问层的源代码(一)

                this.TranRollBack();            //事务模式下:回滚事务

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            cm.Connection.Close();                //关闭连接

我的数据访问层的源代码(一)

            addLogErr(commandText,errorMsg);    //记录到错误日志

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        #endregion 

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        记录错误日志#region 记录错误日志

我的数据访问层的源代码(一)

        //如果要使用的话,根据你的需要进行修改。

我的数据访问层的源代码(一)

        public void addLogErr(string SPName,string ErrDescribe)

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            //记录到错误日志

我的数据访问层的源代码(一)

            string FilePath = System.Web.HttpContext.Current.Server.MapPath("/log/" + DateTime.Now.ToString("yyyyMMdd") + ".txt");

我的数据访问层的源代码(一)

            System.Text.StringBuilder str = new System.Text.StringBuilder();

我的数据访问层的源代码(一)

            str.Append(DateTime.Now.ToString());

我的数据访问层的源代码(一)

            str.Append(" ");

我的数据访问层的源代码(一)

            str.Append(SPName);

我的数据访问层的源代码(一)

            str.Append(" ");

我的数据访问层的源代码(一)

            str.Append(ErrDescribe.Replace("<BR>",""));

我的数据访问层的源代码(一)

            str.Append(" ");

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            System.IO.StreamWriter sw = null;

我的数据访问层的源代码(一)

            try

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            ...{

我的数据访问层的源代码(一)

                sw = new System.IO.StreamWriter(FilePath,true,System.Text.Encoding.Unicode );

我的数据访问层的源代码(一)

                sw.Write(str.ToString());

我的数据访问层的源代码(一)

            }

我的数据访问层的源代码(一)

            catch(Exception ex)

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            ...{

我的数据访问层的源代码(一)

                System.Web.HttpContext.Current.Response.Write("没有访问日志文件的权限!或日志文件只读!");

我的数据访问层的源代码(一)

            }

我的数据访问层的源代码(一)

            finally

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

            ...{

我的数据访问层的源代码(一)

                if (sw != null)

我的数据访问层的源代码(一)

                    sw.Close();

我的数据访问层的源代码(一)

            }

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)

        #endregion

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        //事务日志

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        事务处理部分。并没有做太多的测试,有不合理的地方请多指教#region 事务处理部分。并没有做太多的测试,有不合理的地方请多指教

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 打开连接,并且开始事务。

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public void TranBegin()

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            cm.Connection.Open();

我的数据访问层的源代码(一)

            sqlTrans = cm.Connection.BeginTransaction();

我的数据访问层的源代码(一)

            cm.Transaction = sqlTrans;

我的数据访问层的源代码(一)

            isUseTrans = true;

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 提交事务,并关闭连接

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public void TranCommit()

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            sqlTrans.Commit();

我的数据访问层的源代码(一)

            cm.Connection.Close();

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        /// <summary>

我的数据访问层的源代码(一)

        /// 回滚事务,并关闭连接。在程序出错的时候,自动调用。

我的数据访问层的源代码(一)

        /// </summary>

我的数据访问层的源代码(一)

        public void TranRollBack()

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        ...{

我的数据访问层的源代码(一)

            sqlTrans.Rollback();

我的数据访问层的源代码(一)

            cm.Connection.Close();

我的数据访问层的源代码(一)

        }

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

        #endregion

我的数据访问层的源代码(一)
我的数据访问层的源代码(一)

未完,待续......

我的数据访问层的源代码(一)

}

我的数据访问层的源代码(一)

}

由于代码比较长,所以呢分成几个部分显示。