经典数据访问层

using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.SqlClient;
using System.Configuration;
using System.Net;
using System.IO;

namespace Common
{
    /// <summary>
    /// 数据库访问类
    /// </summary>
    public class MsSql
    {
        //public static string ConnectionString = @"server=" + taobao.DBdata_server + ";Uid="+taobao.DBdata_user +";Pwd="+taobao .DBdata_password +";Database="+taobao .DBdata_name +"";
        public static string ConnectionString = @"server=" + BLL.datahelp.DBdata_server + ";Uid=" + BLL.datahelp.DBdata_user + ";Pwd=" + BLL.datahelp.DBdata_password + ";Database=" + BLL.datahelp.DBdata_name + "";
        public static string ConnectionString2 = @"";

        /// <summary>
        /// 查询(注意使用完需关闭dr)
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string sql, Type t)
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SystemException exception)
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
                if (sql.Length > 50)
                {
                    sql = sql.Substring(0, 50) + "...";
                }
                Log.Write(t, "ExecuteReader(" + sql + "):" + exception.Message);
                return null;
            }
        }

        /// <summary>
        /// 添加、更新、删除
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql, Type t)
        {
            if (sql.Trim().Length == 0)
            {
                return 0;
            }

            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);

                try
                {
                    cmd.CommandType = CommandType.Text;
                    int i = cmd.ExecuteNonQuery();
                    return i;
                }
                catch (SystemException exception)
                {
                    if (sql.Length > 50)
                    {
                        sql = sql.Substring(0, 50) + "...";
                    }
                    Log.Write(t, "ExecuteNonQuery(" + sql + "):" + exception.Message);

                    return -1;
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }

        /// <summary>
        /// 执行查询,并返回查询多返回的结果集中第一行的第一列。忽略其他列或行。
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>结果集中第一行的第一列</returns>
        public static string ExecuteScalar(string sql)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    string s = cmd.ExecuteScalar().ToString();
                    return s;
                }
                catch
                {
                    return "";
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }

        /// <summary>
        /// 根据查询语句从数据库检索数据
        /// </summary>
        /// <param name="strSelect">查询语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>有数据则返回DataSet数据集(类似于ASP中的RecordSet),否则返回null</returns>
        public static DataSet ExecuteDataSet(string sql, Type t)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
                    mySqlDataAdapter.SelectCommand = cmd;
                    DataSet myDS = new DataSet();
                    mySqlDataAdapter.Fill(myDS);
                    return myDS;
                }
                catch (SystemException exception)
                {
                    if (sql.Length > 50)
                    {
                        sql = sql.Substring(0, 50) + "...";
                    }
                    Log.Write(t, "ExecuteDataSet(" + sql + "):" + exception.Message);
                    return null;
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }



        public static SqlDataAdapter ExecuteSqlDataAdapter(string sql, Type t)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
                    mySqlDataAdapter.SelectCommand = cmd;
                    return mySqlDataAdapter;
                }
                catch (SystemException exception)
                {
                    if (sql.Length > 50)
                    {
                        sql = sql.Substring(0, 50) + "...";
                    }
                    Log.Write(t, "SqlDataAdapter(" + sql + "):" + exception.Message);
                    return null;
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }


        public static SqlDataReader ExecuteStoredProcWithReader(string spName, SqlParameter[] parameters, Type t)
        {
            try
            {
                SqlConnection conn = new SqlConnection(ConnectionString);
                conn.Open();
                SqlCommand cmd = new SqlCommand(spName, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                if (parameters != null)
                {
                    for (int i = 0; i < parameters.Length; i++)
                    {
                        cmd.Parameters.Add(parameters[i]);
                    }
                }
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SqlException exception)
            {
                Log.Write(t, "ExecuteStoredProcWithReader(" + spName + "):" + exception.Message);
                throw new SystemException(exception.Message);
            }
        }

        public static int ExecuteStoredProcNonQuery(string spName, SqlParameter[] parameters, Type t)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(spName, conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    if (parameters != null)
                    {
                        for (int i = 0; i < parameters.Length; i++)
                        {
                            cmd.Parameters.Add(parameters[i]);
                        }
                    }
                    int num2 = cmd.ExecuteNonQuery();
                    return num2;
                }
                catch (SqlException exception)
                {
                    Log.Write(t, "ExecuteStoredProcNonQuery(" + spName + "):" + exception.Message);

                    return -1;
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }
        

        public static DataSet ExecuteStoredProcWithDataSet(string spName, ref SqlParameter[] parameters, Type t)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    conn.Open();
                    SqlDataAdapter da = new SqlDataAdapter();
                    DataSet ds = new DataSet();
                    SqlCommand cmd = new SqlCommand(spName, conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    if (parameters != null)
                    {
                        for (int i = 0; i < parameters.Length; i++)
                        {
                            cmd.Parameters.Add(parameters[i]);
                        }
                    }
                    da.SelectCommand = cmd;
                    da.Fill(ds);
                    return ds;
                }
                catch (SqlException exception)
                {
                    Log.Write(t, "ExecuteStoredProcWithDataSet(" + spName + "):" + exception.Message);
                    return null;
                    //throw new SystemException(exception.Message);
                }
                finally
                {
                    if (conn.State.Equals(ConnectionState.Open))
                    {
                        conn.Close();
                    }
                }
            }
        }




        public static SqlDataReader  get_tablecolunm(string talblename)
        {
            try
            {
                SqlConnection conn = new SqlConnection(ConnectionString);
                conn.Open();
                string str_sql = "Select Name from syscolumns where ID=OBJECT_ID(N'" + talblename + "') Order By ColID";
                SqlCommand com = new SqlCommand(str_sql, conn);
                SqlDataReader dr = com.ExecuteReader();
                return dr;
            }
            catch (SqlException exception)
            {
                Log.Write("ExecuteStoredProcWithReader:" + exception.Message);
                throw new SystemException(exception.Message);
                return null;

            }
        }



        /// <summary>
        /// 检证安全字符
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static  string SqlSafe(string value)
        {
            value = value.Replace("'", "''");
            // value = value.Replace("%", "'%");
            return value;
        }
    }
}

 

 

 

using System;
using System.IO;

namespace Common
{
    public class Log
    {
        private static object lockWrite = new object();

        public static void Write(Type t, Exception e)
        {
            Write(t, e, null);
        }

        public static void Write(Type t, string sLog)
        {
            try
            {
                Write(t, null, sLog);
            }
            catch
            { }
        }

        public static void Write(string sLog)
        {
            Write(null, null, sLog);
        }

        public static void Write(Exception e)
        {
            Write(null, e, null);
        }

        private static void Write(Type t, Exception e, string sLog)
        {
            lock (lockWrite)
            {
                string LogDirectory = AppDomain.CurrentDomain.BaseDirectory + @"\App_Log\";

                if (!Directory.Exists(LogDirectory))
                {
                    Directory.CreateDirectory(LogDirectory);
                }

                string LogFile = LogDirectory + DateTime.Now.Date.ToString("yyyy-MM-dd") + ".log";

                string strLog = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|";

                if (t != null)
                {
                    strLog += t.FullName;
                }

                if (e != null)
                {
                    strLog += e.Message;
                }

                if (sLog != null)
                {
                    strLog += sLog;
                }

                try
                {
                    StreamWriter writer = new StreamWriter(new FileStream(LogFile, FileMode.Append, FileAccess.Write), System.Text.Encoding.GetEncoding("GBK"));
                    writer.WriteLine(strLog);
                    writer.Close();
                }
                catch (SystemException ex)
                {
                    Write("Log.cs(66)," + ex.Message);
                }
            }
        }
    }
}

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using System.Security;


namespace BLL
{
   public  class Security_cs
    {

        public class EncryptAndDecrypt
        {
            //默认密钥向量
            private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
            /**/
            /// <summary>
            /// DES加密字符串
            /// </summary>
            /// <param name="encryptString">待加密的字符串</param>
            /// <param name="encryptKey">加密密钥,要求为8位</param>
            /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
            public static string EncryptDES(string encryptString, string encryptKey)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                    byte[] rgbIV = Keys;
                    byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                    DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                    MemoryStream mStream = new MemoryStream();
                    CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    return Convert.ToBase64String(mStream.ToArray());
                }
                catch
                {
                    return encryptString;
                }
            }

            /**/
            /// <summary>
            /// DES解密字符串
            /// </summary>
            /// <param name="decryptString">待解密的字符串</param>
            /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
            /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
            public static string DecryptDES(string decryptString, string decryptKey)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                    byte[] rgbIV = Keys;
                    byte[] inputByteArray = Convert.FromBase64String(decryptString);
                    DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                    MemoryStream mStream = new MemoryStream();
                    CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    return Encoding.UTF8.GetString(mStream.ToArray());
                }
                catch
                {
                    return decryptString;
                }
            }

            public static string to_md5(string str, int code)
            {
                string strmd5 = "";

                if (code == 16) //16位MD5加密(取32位加密的9~25字符) 
                {
                    strmd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
                }
                if (code == 32) //32位加密 
                {
                    strmd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
                }
                return strmd5;
            }
        }

    }
}

 

posted @ 2012-04-25 22:23  小锋神  阅读(603)  评论(0编辑  收藏  举报