开心

DBHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Xml;

namespace clsLibrarySQLHelper
{
    public class SQLHelper_Erp
    {
        //public static string sConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ToString();
        public static string sConnStr = ConfigurationManager.AppSettings["ConnStr"];

        //    private static SqlConnection conn;
        /// <summary>
        /// 静态类
        /// </summary>
        static SQLHelper_Erp()
        {
        }

        /// <summary>
        /// Connection
        /// </summary>
        /// <returns></returns>
        //        public static SqlConnection GetConn()
        //        {
        //            return conn ;
        //        }

        /// <summary>
        /// 执行Sql语句
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static bool ExecuteSQl(string sSql, params int[] TimeOut)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlCommand cmd = new SqlCommand();

            if (TimeOut.Length > 0)
            {
                int t = TimeOut[0];
                cmd.CommandTimeout = t;
            }

            try
            {
                conn.Open();
                cmd.Connection = conn;
                cmd.CommandText = sSql;
                cmd.ExecuteNonQuery();
                return true;
            }
            catch (SqlException ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.StackTrace + " \r\n " + ex.Message, "SQl错误", "ExecuteSQl");
                throw ex;
                //return false;
            }
            catch (Exception ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "ExecuteSQl");
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
            }
        }

        /// <summary>
        /// 执行Sql语句,并返回影响的记录的行
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static int GetCount(string sSql)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlCommand cmd = new SqlCommand(sSql, conn);

            try
            {
                conn.Open();
                //cmd.Connection =conn;
                //cmd.CommandText=sSql;
                return cmd.ExecuteNonQuery();

            }
            catch (SqlException ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "getCount");
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
            }
        }

        /// <summary>
        /// 返回数据表
        /// </summary>
        /// <param name="sSql">SQL语句</param>
        /// <param name="sTableName">SQL语句</param>
        /// <returns></returns>
        public DataTable GetDataTable(string sSql, string sTableName)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
            try
            {
                conn.Open();
                da.Fill(ds);
                return ds.Tables[sTableName.Trim()];
            }
            catch (Exception ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "GetDataTable");
                throw ex;
            }
            finally
            {
                da.Dispose();
                conn.Close();
            }

            //return null;
        }

        /// <summary>
        /// 向数据集添加表
        /// </summary>
        /// <param name="sSql">SQL语句</param>
        /// <param name="ds">要添加表的数据集</param>
        /// <param name="tableName">表名</param>
        public static void AddTableToDataSet(string sSql, DataSet ds, string tableName)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
            try
            {
                conn.Open();
                da.Fill(ds, tableName);
            }
            catch (SqlException ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "AddTableToDataSet");
                throw new Exception(ex.Message);
            }
            finally
            {
                da.Dispose();
                conn.Close();
            }
        }


        /// <summary>
        /// 返回数据集
        /// </summary>
        /// <param name="sSql">SQL语句</param>
        /// <returns></returns>
        public static DataSet GetDataSet(string sSql, params int[] TimeOut)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
            if (TimeOut.Length > 0)
            {
                int t = TimeOut[0];
                da.SelectCommand.CommandTimeout = t;
            }
            try
            {
                conn.Open();
                da.Fill(ds);
            }
            catch (SqlException ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "GetDataSet");
                throw new Exception(ex.Message);
           
            }
            finally
            {
                da.Dispose();
                conn.Close();
            }
            return ds;
        }

        /// <summary>
        /// 返回数据集
        /// </summary>
        /// <param name="sSql">SQL语句</param>
        /// <param name="sTableName">想要的表名称</param>
        /// <returns></returns>
        public static DataSet GetDataSet(string sSql, string sTableName, params int[] TimeOut)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
            if (TimeOut.Length > 0)
            {
                int t = TimeOut[0];
                da.SelectCommand.CommandTimeout = t;
            }
            try
            {
                conn.Open();
                da.Fill(ds, sTableName);
            }
            catch (SqlException ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "getdataset");
                throw new Exception(ex.Message);
            }
            finally
            {
                da.Dispose();
                conn.Close();
                conn.Dispose();
            }
            return ds;
        }

        /// <summary>
        /// 分页返回数据集
        /// </summary>
        /// <param name="sSql">SQL语句</param>
        /// <param name="sTableName">要设定的表名</param>
        /// <param name="iPageNum">当前页码</param>        
        /// <param name="iPageCount">每页显示的条数</param>
        /// <returns></returns>
        public static DataSet GetDataSet(string sSql, string sTableName, int iPageNum, int iPageCount)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            iPageNum -= 1;
            if (iPageNum <= 0) iPageNum = 0;
            if (iPageCount <= 0) iPageCount = 10; //默认为10条

            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
            try
            {
                conn.Open();
                da.Fill(ds, iPageNum * iPageCount, iPageCount, sTableName);
            }
            catch (SqlException ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "getdataset");
                throw new Exception(ex.Message);
            }
            finally
            {
                da.Dispose();
                conn.Close();
            }
            return ds;
        }

        /// <summary>
        /// 返回数据
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        //public static SqlDataReader dr_DataReader;
        public static SqlDataReader GetDataReader(string sSql, params int[] TimeOut)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlCommand cmd = new SqlCommand(sSql, conn);
            if (TimeOut.Length > 0)
            {
                int t = TimeOut[0];
                cmd.CommandTimeout = t;
            }
            SqlDataReader dr;
            try
            {
                conn.Open();
                dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "getdatareader");
                throw new Exception(ex.Message);
            }
            finally
            {

            }
            return dr;
        }

        /// <summary>
        /// 关闭连接
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static void Colse_Conn()
        {
            //SqlConnection conn = new SqlConnection(sConnStr);
            //SqlDataReader dr;
            //if (dr != null)
            //{
            //    dr.Close();
            //}
            //conn.Close();
            //if (conn.State == ConnectionState.Open)
            //{
            //    conn.Close();
            //}
        }

        /// <summary>
        /// 返回一行一列的值
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static string FetFirstCol(string sSql, params int[] TimeOut)
        {
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlCommand cmd = new SqlCommand(sSql, conn);
            if (TimeOut.Length > 0)
            {
                int t = TimeOut[0];
                cmd.CommandTimeout = t;
            }

            object obj;
            try
            {
                conn.Open();
                obj = cmd.ExecuteScalar();
                if (obj == null)
                {
                    return "";
                }
                else
                {
                    return obj.ToString();
                }
            }
            catch (Exception ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "getfirstcol");
                throw new Exception(ex.Message);
            }
            finally
            {
                conn.Close();
            }

        }

        /// <summary>
        /// 事务处理
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static int ExecuteTransaction(System.Collections.ArrayList sSql)
        {
            SqlConnection conn = new SqlConnection(sConnStr);
            System.Data.SqlClient.SqlTransaction Trans;
            SqlCommand cmd = new SqlCommand();
            conn.Open();
            Trans = conn.BeginTransaction();
            cmd.Transaction = Trans;
            int i = 0, iResult = 0;

            cmd.Connection = conn;
            try
            {
                for (i = 0; i < sSql.Count; i++)
                {
                    cmd.CommandText = sSql[i].ToString();
                    iResult = cmd.ExecuteNonQuery();
                }
                Trans.Commit();
            }
            catch (Exception ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "ExecuteTransaction");
                Trans.Rollback();
                throw ex;
                //return false;
            }
            finally
            {
                conn.Close();
            }
            return iResult;
        }

        /// <summary>
        /// 返回存储过程返回值
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static string ExecuteProcedure(string sSql)
        {
            #region ExecuteProcedure
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlCommand cmd = new SqlCommand(sSql, conn);
            object str;

            //cmd.Parameters[0] = new SqlParameter("@RETURN_VALUE", SqlDbType.Int);
            //cmd.Parameters[0].Direction = ParameterDirection.ReturnValue;   //添加获得返回值的参数       

            cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;   //添加获得返回值的参数       

            try
            {


                conn.Open();
                cmd.ExecuteNonQuery();
                str = cmd.Parameters["@RETURN_VALUE"].Value; //获得返回值的地方
                if (str == null)
                {
                    return "";
                }
                else
                {
                    return str.ToString();
                }
            }
            catch (Exception ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "ExecuteProcedure");

                throw new Exception(ex.Message);
            }
            finally
            {
                conn.Close();
            }

            #endregion
        }

        /// <summary>
        /// 返回存储过程输出值
        /// </summary>
        /// <param name="sSql"></param>
        /// <returns></returns>
        public static string ExecuteProcedureOut(string sSql, int iType, string iID)
        {
            #region ExecuteProcedure
            sSql = XmlHelper.RefreshLanguageID(sSql);
            SqlConnection conn = new SqlConnection(sConnStr);

            SqlCommand cmd = new SqlCommand();
            object str;

            cmd.Connection = conn;
            cmd.CommandText = sSql;

            cmd.Parameters.AddWithValue("@iType", iType);
            cmd.Parameters.AddWithValue("@iBillID", iID);
            cmd.Parameters.Add("@RETURN_VALUE", SqlDbType.NVarChar, 200).Direction = ParameterDirection.Output;
            cmd.CommandType = CommandType.StoredProcedure;

            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
                str = cmd.Parameters["@RETURN_VALUE"].Value; //获得返回值的地方
                if (str == null)
                {
                    return "";
                }
                else
                {
                    return str.ToString();
                }
            }
            catch (Exception ex)
            {

                XmlHelper.WriteFileLog("SQl代码错误:" + sSql + "\r\n" + ex.Message, "SQl错误", "ExecuteProcedureOut");

                throw new Exception(ex.Message);
            }
            finally
            {
                conn.Close();
            }

            #endregion
        }

        /// <summary>
        /// 执行过程返回一个数据集
        /// </summary>
        /// <param name="Procedure_name"></param>
        /// <param name="Table_name"></param>
        /// <param name="_Ht"></param>
        /// <returns></returns>
        public static DataSet GetDataSetByProcedure(string Procedure_name, string Table_name, Hashtable _Ht)
        {
            SqlConnection conn = new SqlConnection(sConnStr);

            SqlCommand cmd = new SqlCommand(Procedure_name, conn);
            cmd.CommandType = CommandType.StoredProcedure;

            AddInParaValues(conn, cmd, _Ht);

            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter();
            try
            {
                conn.Open();
                da.SelectCommand = cmd;
                da.Fill(ds, Table_name);
                conn.Close();
                return ds;
            }
            catch (SqlException ex)
            {
                XmlHelper.WriteFileLog("SQl代码错误:" + Procedure_name + "\r\n" + ex.Message, "SQl错误", "GetDataSetByProcedure");
                throw new Exception(ex.Message);
            }
            finally
            {
                da.Dispose();
                conn.Close();
            }
        }

        /// <summary>
        /// 为 SqlCommand 添加参数及赋值
        /// </summary>
        /// <param name="comm">SqlCommand</param>
        /// <param name="paraValues">参数数组(必须遵循存储过程参数列表的顺序)</param>
        public static void AddInParaValues(SqlConnection conn, SqlCommand comm, Hashtable htParametersValues)
        {
            comm.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.Int));
            comm.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;
            if (htParametersValues != null)
            {
                DataTable dt = GetParameters(conn, comm.CommandText);
                int i = 0;
                foreach (DataRow row in dt.Rows)
                {
                    string key = row[3].ToString();
                    if (key != "@RETURN_VALUE")
                    {
                        int value = int.Parse(row[4].ToString());
                        if (value == 1)
                        {
                            comm.Parameters.AddWithValue(key, htParametersValues[key]);
                        }
                        else if (value == 2)//value为2则是输出参数
                        {
                            comm.Parameters.AddWithValue(key, htParametersValues[key]).Direction = ParameterDirection.Output;
                            //comm.Parameters[key].Direction = ParameterDirection.Output;
                        }
                        i++;
                    }
                }
            }
        }

        /// <summary>
        /// 获取存储过程的参数列表
        /// </summary>
        /// <param name="proc_Name">存储过程名称</param>
        /// <returns>DataTable</returns>
        public static DataTable GetParameters(SqlConnection conn, string proc_Name)
        {
            SqlCommand comm = new SqlCommand("dbo.sp_sproc_columns", conn);
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.AddWithValue("@procedure_name", (object)proc_Name);
            SqlDataAdapter sda = new SqlDataAdapter(comm);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            return dt;
        }

        #region 存储过程操作

        /// <summary>
        /// 执行存储过程,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <returns>SqlDataReader</returns>
        public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
        {
            SqlConnection conn = new SqlConnection(sConnStr);
            SqlDataReader returnReader;
            conn.Open();
            SqlCommand command = BuildQueryCommand(conn, storedProcName, parameters);
            command.CommandType = CommandType.StoredProcedure;
            returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
            return returnReader;
        }

        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <param name="tableName">DataSet结果中的表名</param>
        /// <returns>DataSet</returns>
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(sConnStr))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                connection.Close();
                return dataSet;
            }
        }

        /// <summary>
        /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
        /// </summary>
        /// <param name="connection">数据库连接</param>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <returns>SqlCommand</returns>
        private static SqlCommand BuildQueryCommand(SqlConnection conn, string storedProcName, IDataParameter[] parameters)
        {
            SqlCommand cmd = new SqlCommand(storedProcName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            foreach (SqlParameter parameter in parameters)
            {
                if (parameter != null)
                {
                    // 检查未分配值的输出参数,将其分配以DBNull.Value.
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter);
                }
            }

            return cmd;
        }

        /// <summary>
        /// 创建 SqlCommand 对象实例(用来返回一个整数值)    
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <returns>SqlCommand 对象实例</returns>
        private static SqlCommand BuildIntCommand(SqlConnection conn, string storedProcName, IDataParameter[] parameters)
        {
            SqlCommand cmd = BuildQueryCommand(conn, storedProcName, parameters);
            cmd.Parameters.Add(new SqlParameter("ReturnValue",
                SqlDbType.Int, 4, ParameterDirection.ReturnValue,
                false, 0, 0, string.Empty, DataRowVersion.Default, null));
            return cmd;
        }

        #endregion

        /// <summary>
        /// 分页参数
        /// </summary>
        /// <returns></returns>
        public static SqlParameter[] pagePara()
        {
            SqlParameter[] parameter = {
            new SqlParameter("@TableName",SqlDbType.VarChar,255),//表名,如tb_testtable
            new SqlParameter("@ReturnFields",SqlDbType.VarChar,1000),//字段名,如id,userName
            new SqlParameter("@Orderfld",SqlDbType.VarChar,255),//排序的字段名,如id
            new SqlParameter("@PageSize",SqlDbType.Int,4),//一页大小,如10
            new SqlParameter("@PageIndex",SqlDbType.Int,4),//当前页码
            new SqlParameter("@OrderType",SqlDbType.Int,4),//设置排序类型,非0则降序
            new SqlParameter("@Where",SqlDbType.VarChar,1500),//查询条件(注意不要加:where)
            new SqlParameter("@RecordCount",SqlDbType.Int,4)};
            return parameter;
        }
    }
}
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Web;
using System.IO;
using System.Windows.Forms;
namespace clsLibrarySQLHelper
{
    /// <summary>
    ///
    /// 用于 读取XML中的SQL语句用
    /// </summary>
    public class XmlHelper
    {


        /// <summary>
        /// 得到SQL语句可以指定参数
        /// </summary>
        /// <param name="FileName"></param>
        /// <param name="NameSpace"></param>
        /// <param name="ClassName"></param>
        /// <param name="FunctionName"></param>
        /// <param name="Remark"></param>
        /// <param name="SID"></param>
        /// <param name="table">参数列表</param>
        /// <returns></returns>
        public static string GetXmlStr(string FileName, string NameSpace, string ClassName, string FunctionName, string Remark, string SID, System.Collections.Hashtable table)
        {
            string sqlStr = GetXmlStr(FileName, NameSpace, ClassName, FunctionName, Remark, SID);

            System.Collections.IDictionaryEnumerator Idiction = table.GetEnumerator();
            while (Idiction.MoveNext())
            {
                if (Idiction.Key == null)
                    continue;
                string key = string.Empty, value = string.Empty;
                key = Idiction.Key.ToString();

                if (Idiction.Value != null)
                {
                    value = Idiction.Value.ToString();
                }
                else
                {
                    value = "NULL";
                }

                sqlStr = sqlStr.Replace(key, value);

            }
            return sqlStr;
        }


        /// <summary>
        /// 得到SQL语句
        /// </summary>
        /// <param name="FileName"></param>
        /// <param name="NameSpace"></param>
        /// <param name="ClassName"></param>
        /// <param name="FunctionName"></param>
        /// <param name="Remark"></param>
        /// <param name="SID"></param>
        /// <returns></returns>
        public static string GetXmlStr(string FileName, string NameSpace, string ClassName, string FunctionName, string Remark, string SID)
        {
            string sql = string.Empty;
            try
            {
                XmlDocument doc = new XmlDocument();
                string XmlPath = System.Configuration.ConfigurationManager.AppSettings["XmlPath"].Replace("\\", "//");
                doc.Load(XmlPath + "/" + FileName);

                sql = GetXmlNodeStr("/root/NameSpace/Class/Function[@SID='" + SID + "']", doc);
            }
            catch (Exception)
            {
                throw;
            }
            return sql;

        }

        public static string RefreshLanguageID(string sql)
        {
            if (sql.Contains("LanguageID"))
            {
                if (System.Web.HttpContext.Current.Request.Cookies["ERCookie"] == null)
                {
                    if (sql.IndexOf("#LanguageID") > 0)
                        sql = sql.Replace("#LanguageID", "1");
                    else
                        sql = sql.Replace("@LanguageID", "1");
                }
                else
                {
                    string languageid = System.Web.HttpContext.Current.Request.Cookies["ERCookie"].Values["LanguageID"];
                    if (!string.IsNullOrEmpty(languageid))
                    {
                        if (sql.IndexOf("#LanguageID") > 0)
                            sql = sql.Replace("#LanguageID", languageid);
                        else
                            sql = sql.Replace("@LanguageID", languageid);
                    }
                }
            }
            return sql;

        }

        public static String GetXmlNodeStr(string xpath, XmlDocument doc)
        {
            XmlNode node = doc.SelectSingleNode(xpath);
            if (node != null)
                return node.InnerText;
            else
                return string.Empty;
        }

        public static XmlNode GetXmlNode(XmlNodeList list, string Name)
        {
            foreach (XmlNode nod in list)
            {
                if (nod.Attributes["Name"].Value == Name)
                {
                    return nod;
                }
            }
            return null;
        }
        static XmlNodeList GetXmlNodeList(string Name)
        {
            XmlDocument doc = new XmlDocument();
            return doc.GetElementsByTagName(Name);
        }
        static XmlNode GetFunctionSqlStr(XmlNode ClassName, string FunctionName, string Sid)
        {
            foreach (XmlNode nod in ClassName.ChildNodes)
            {
                if (nod.Attributes["Name"].Value == FunctionName)
                {
                    if (nod.Attributes["SID"].Value == Sid)
                    {
                        return nod;
                    }
                }
            }
            return null;
        }

        /// <summary>
        /// 写入错误信息文件 注:适用于SQL 错误
        /// </summary>
        /// <param name="logs"></param>
        /// <param name="type"></param>
        /// <param name="SourceFn"></param>
        public static void WriteFileLog(string logs, string type, string SourceFn)
        {
            string UName = string.Empty;
            string IP = string.Empty;
            if (HttpContext.Current != null)
            {
                HttpCookie cook = System.Web.HttpContext.Current.Request.Cookies["ERCookie"];
                if (cook != null)
                {
                    UName = HttpUtility.UrlDecode(cook.Values["cUserName"]);
                }
                IP = System.Web.HttpContext.Current.Request.UserHostAddress;
            }
            string xmlpath = Application.StartupPath + "\\Log\\Logs.log";

            string line = "====================================================================================================================================================\r\n";
            logs = line + "【时间:" + DateTime.Now.ToString() + "】\r\n" + "【信息:" + logs + "】\r\n";
            logs += line;
            File.AppendAllText(xmlpath, logs);

        }

        /// <summary>
        /// 写入错误信息文件 注:适用于SQL 错误
        /// </summary>
        /// <param name="logs"></param>
        /// <param name="type"></param>
        /// <param name="SourceFn"></param>
        public static void WriteFileLog(string logs)
        {

            string xmlpath = Application.StartupPath + "\\Log\\Logs.log";

            string line = "====================================================================================================================================================\r\n";
            logs = line + "【时间:" + DateTime.Now.ToString() + "】\r\n" + "【信息:" + logs + "】\r\n";
            logs += line;
            File.AppendAllText(xmlpath, logs);

        }


        /// <summary>
        /// 写入错误信息文件 注:适用于web页面发生的未知请求错误
        /// </summary>
        /// <param name="logs"></param>
        /// <param name="type"></param>
        /// <param name="SourceFn"></param>
        public static void WriteFileLogForWeb(string logs, string type, string SourceFn)
        {
            string UName = string.Empty;
            string IP = string.Empty;
            if (HttpContext.Current != null)
            {
                HttpCookie cook = System.Web.HttpContext.Current.Request.Cookies["ERCookie"];
                if (cook != null)
                {
                    UName = HttpUtility.UrlDecode(cook.Values["cUserName"]);
                }
                IP = System.Web.HttpContext.Current.Request.UserHostAddress;
            }
            string xmlpath = System.Web.HttpContext.Current.Server.MapPath("~/WebError.log");
            //string xmlpath = System.Configuration.ConfigurationManager.AppSettings["XmlPath"].ToString().Replace("XML\\", "");
            //string path = xmlpath += "\\WebError.log";
            string line = "====================================================================================================================================================\r\n";
            logs = line + "用户:" + UName + "\t时间:" + DateTime.Now.ToString() + "\tIP:" + IP + "\r\n错误类型:" + type + "\t请求页面:" + SourceFn + "\r\n" + "错误信息:" + logs + "\r\n";
            logs += line;
            File.AppendAllText(xmlpath, logs);

        }

    }

}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace clsLibrarySQLHelper
{
    /// <summary>
    /// 读取config配置文件
    /// </summary>
    public class clsConfig
    {
        public clsConfig()
        {
            ///
            /// TODO: 在此处添加构造函数逻辑
            ///
        }
        /// <summary>
        /// 写操作
        /// </summary>
        /// <param name="strExecutablePath"></param>
        /// <param name="AppKey"></param>
        /// <param name="AppValue"></param>
        public static void ConfigSetValue(string strExecutablePath, string AppKey, string AppValue)
        {
            #region ConfigSetValue

            XmlDocument xDoc = new XmlDocument();
            //获取可执行文件的路径和名称
            xDoc.Load(strExecutablePath + ".config");

            XmlNode xNode;
            XmlElement xElem1;
            XmlElement xElem2;
            xNode = xDoc.SelectSingleNode("//connectionStrings");
            // xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
            xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@name='" + AppKey + "']");
            if (xElem1 != null) xElem1.SetAttribute("connectionString", AppValue);
            else
            {
                xElem2 = xDoc.CreateElement("add");
                xElem2.SetAttribute("name", AppKey);
                xElem2.SetAttribute("connectionString", AppValue);
                xNode.AppendChild(xElem2);
            }
            xDoc.Save(strExecutablePath + ".config");

            #endregion
        }

        /// <summary>
        /// 读操作
        /// </summary>
        /// <param name="strExecutablePath"></param>
        /// <param name="appKey"></param>
        /// <returns></returns>
        public string ConfigGetValue(string strExecutablePath, string appKey)
        {
            #region ConfigGetValue

            XmlDocument xDoc = new XmlDocument();
            try
            {
                xDoc.Load(strExecutablePath + ".config");

                XmlNode xNode;
                XmlElement xElem;
                xNode = xDoc.SelectSingleNode("//settings");
                xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
                if (xElem != null)
                    return xElem.GetAttribute("value");
                else
                    return "";
            }
            catch (Exception)
            {
                return "";
            }

            #endregion
        }
    }
}

 

posted @ 2017-04-15 22:25  大喜  阅读(317)  评论(0编辑  收藏  举报
坦然 会增进信任 - 信任 感情才会升华