自己写的数据访问层(使用ini文件加密存储sql数据库登陆信息)

    技术2022-05-11  125

    数据访问类:

    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;using System.Runtime.InteropServices;using System.Text;using System.Data.SqlClient;

     

    /// <summary>/// Base 的摘要说明/// </summary>public class Base{    //写入Ini文件API函数    [DllImport("kernel32")]    private static extern bool WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName);

        //读取Ini文件API函数    [DllImport("kernel32")]    public static extern bool GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);        public string connectionstring="";    public SqlConnection conn;    Code code = new Code();    public Base() {        this.GetConnectionstring();        conn = new SqlConnection(connectionstring);  }    //获取数据库连接字符串    private void GetConnectionstring()    {        string file_name =HttpContext.Current.Server.MapPath("set.ini");        string server_ip = "";        string server_name = "";        string server_pwd = "";        StringBuilder sb = new StringBuilder(30);        GetPrivateProfileString("ip", "server_ip", "", sb, sb.Capacity, file_name);        server_ip =code.Decrypt3DES(sb.ToString().Trim());        sb = new StringBuilder(30);        GetPrivateProfileString("name", "server_name", "", sb, sb.Capacity, file_name);        server_name =code.Decrypt3DES(sb.ToString().Trim());        sb = new StringBuilder(30);        GetPrivateProfileString("pwd", "server_pwd", "", sb, sb.Capacity, file_name);        server_pwd =code.Decrypt3DES(sb.ToString().Trim());        connectionstring = "server=" + server_ip + ";database=wsbm;user id=" + server_name + ";pwd=" + server_pwd + ";MAx pool size=100";           }

        //判断数据库连接是否可用    public bool IsDataServer()    {        try        {            conn.Open();            conn.Close();            return true;        }        catch         {            return false;        }        finally        {            if(conn.State==ConnectionState.Open)            {                conn.Close();            }        }    }

        //执行select语句    public DataSet ExecSelect(string sql, string table)    {        conn.Open();        SqlDataAdapter adap = new SqlDataAdapter(sql, conn);        DataSet ds = new DataSet();        try        {            ds.Clear();            if (table != "")            {                adap.Fill(ds, table);                return ds;            }            else            {                adap.Fill(ds);                return ds;            }        }        catch (SqlException ex)        {            throw (new Exception(ex.Message));        }        finally        {            ds.Dispose();            adap.Dispose();            conn.Close();        }    }

        //执行insert,delete,update语句    public bool ExecTransact(string str_sql)    {        conn.Open();        SqlCommand cmd = new SqlCommand(str_sql, conn);        try        {            int i = cmd.ExecuteNonQuery();            if (i > 0)            {                return true;            }            else            {                return false;            }        }        catch (SqlException ex)        {            throw (new Exception(ex.Message));        }        finally        {            cmd.Dispose();            conn.Close();        }    }

        //判断是记录否存在,返回布尔    public bool ExecIsRecord(string str_sql)    {        conn.Open();        SqlCommand cmd = new SqlCommand(str_sql, conn);        try        {            SqlDataReader read = cmd.ExecuteReader();            if (read.HasRows)            {                return true;            }            else            {                return false;            }        }        catch (SqlException ex)        {            throw (new Exception(ex.Message));        }        finally        {            cmd.Dispose();            conn.Close();        }    }

        //使用事务处理,删除考试级别    public bool Del_ksjb(string sql1, string sql2,string sql3)    {        conn.Open();        SqlCommand cmd = conn.CreateCommand();        SqlTransaction trans;        trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);        cmd.Connection = conn;        cmd.Transaction = trans;        try        {            cmd.CommandText = sql1;            cmd.ExecuteNonQuery();            cmd.CommandText = sql2;            cmd.ExecuteNonQuery();            cmd.CommandText = sql3;            cmd.ExecuteNonQuery();            trans.Commit();            return true;        }        catch (Exception e)        {            try            {                trans.Rollback();//回滚事务            }            catch (System.Data.SqlClient.SqlException ex)//回滚失败的处理            {                if (trans.Connection != null)                {                    throw (new Exception("一个异常: " + ex.GetType() +                        "在执行事务回滚操作时发生"));

                    }            }            throw (new Exception(e.Message));            return false;        }        finally        {            conn.Close();        }    }    //使用事务处理,删除考试专业    public bool Del_kszy(string sql1, string sql2)    {        conn.Open();        SqlCommand cmd = conn.CreateCommand();        SqlTransaction trans;        trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);        cmd.Connection = conn;        cmd.Transaction = trans;        try        {            cmd.CommandText = sql1;            cmd.ExecuteNonQuery();            cmd.CommandText = sql2;            cmd.ExecuteNonQuery();                       trans.Commit();            return true;        }        catch (Exception e)        {            try            {                trans.Rollback();//回滚事务            }            catch (System.Data.SqlClient.SqlException ex)//回滚失败的处理            {                if (trans.Connection != null)                {                    throw (new Exception("一个异常: " + ex.GetType() +                        "在执行事务回滚操作时发生"));

                    }            }            throw (new Exception(e.Message));            return false;        }        finally        {            conn.Close();        }    }

        //使用事务处理,删除考试内容    public bool Del_ksnr(string sql1, string sql2,string sql3,string sql4,string sql5,string sql6)    {        conn.Open();        SqlCommand cmd = conn.CreateCommand();        SqlTransaction trans;        trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);        cmd.Connection = conn;        cmd.Transaction = trans;        try        {            cmd.CommandText = sql1;            cmd.ExecuteNonQuery();            cmd.CommandText = sql2;            cmd.ExecuteNonQuery();            cmd.CommandText = sql3;            cmd.ExecuteNonQuery();            cmd.CommandText = sql4;            cmd.ExecuteNonQuery();            cmd.CommandText = sql5;            cmd.ExecuteNonQuery();            cmd.CommandText = sql6;            cmd.ExecuteNonQuery();            trans.Commit();            return true;        }        catch (Exception e)        {            try            {                trans.Rollback();//回滚事务            }            catch (System.Data.SqlClient.SqlException ex)//回滚失败的处理            {                if (trans.Connection != null)                {                    throw (new Exception("一个异常: " + ex.GetType() +                        "在执行事务回滚操作时发生"));

                    }            }            throw (new Exception(e.Message));            return false;        }        finally        {            conn.Close();        }    }

        //使用事务处理,同时执行3条语句    public bool ExecTransact_3(string sql1, string sql2,string sql3)    {        conn.Open();        SqlCommand cmd = conn.CreateCommand();        SqlTransaction trans;        trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);        cmd.Connection = conn;        cmd.Transaction = trans;        try        {            cmd.CommandText = sql1;            cmd.ExecuteNonQuery();            cmd.CommandText = sql2;            cmd.ExecuteNonQuery();            cmd.CommandText = sql3;            cmd.ExecuteNonQuery();            trans.Commit();            return true;        }        catch (Exception e)        {            try            {                trans.Rollback();//回滚事务            }            catch (System.Data.SqlClient.SqlException ex)//回滚失败的处理            {                if (trans.Connection != null)                {                    throw (new Exception("一个异常: " + ex.GetType() +                        "在执行事务回滚操作时发生"));

                    }            }            throw (new Exception(e.Message));            return false;        }        finally        {            conn.Close();        }    }

        //使用事务处理,同时执行2条语句    public bool ExecTransact_2(string sql1, string sql2)    {        conn.Open();        SqlCommand cmd = conn.CreateCommand();        SqlTransaction trans;        trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);        cmd.Connection = conn;        cmd.Transaction = trans;        try        {            cmd.CommandText = sql1;            cmd.ExecuteNonQuery();            cmd.CommandText = sql2;            cmd.ExecuteNonQuery();                       trans.Commit();            return true;        }        catch (Exception e)        {            try            {                trans.Rollback();//回滚事务            }            catch (System.Data.SqlClient.SqlException ex)//回滚失败的处理            {                if (trans.Connection != null)                {                    throw (new Exception("一个异常: " + ex.GetType() +                        "在执行事务回滚操作时发生"));

                    }            }            throw (new Exception(e.Message));            return false;        }        finally        {            conn.Close();        }    }} 

     

    加密类:

    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;using System.Security.Cryptography;//加密using System.Text;

    /// <summary>/// Code 的摘要说明/// </summary>public class Code{ public Code() {  //  // TODO: 在此处添加构造函数逻辑  // }    //3des加密    public string Encrypt3DES(string strString)    {        string strKey = "malong";        TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();        MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();                DES.Key = hashMD5.ComputeHash(Encoding.ASCII.GetBytes(strKey));        DES.Mode = CipherMode.ECB;

            ICryptoTransform DESEncrypt = DES.CreateEncryptor();

            byte[] Buffer = Encoding.ASCII.GetBytes(strString);        return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));    }    //解密    public string Decrypt3DES(string strString)    {        string strKey = "malong";        TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();        MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();

            DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(strKey));        DES.Mode = CipherMode.ECB;        ICryptoTransform DESDecrypt = DES.CreateDecryptor();        string result = "";        try        {            byte[] Buffer = Convert.FromBase64String(strString);            result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));        }        catch (System.Exception e)        {           throw (new System.Exception("null", e));        }        return result;    }    //md5加密    public string EncryptMD5(string str)    {        MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();        string s=ASCIIEncoding.ASCII.GetString(hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(str)));        return s;    }  

    }

     

     


    最新回复(0)