zoukankan      html  css  js  c++  java
  • 经典数据访问层

    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;
                }
            }
    
        }
    }
    
  • 相关阅读:
    1509 加长棒
    51Nod 1158 全是1的最大子矩阵
    P2953 [USACO09OPEN]牛的数字游戏Cow Digit Game
    P3384 【模板】树链剖分
    北京集训DAY3
    北京集训DAY2
    北京集训DAY1
    51Nod 1422 沙拉酱前缀 二分查找
    51Nod 1109 01组成的N的倍数
    51Nod 1043 幸运号码 数位DP
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/2470631.html
Copyright © 2011-2022 走看看