自己写的数据访问层(使用ini文件加密存储sql数据库登陆信息)
来源:互联网 发布:网络直播主持招聘 编辑:程序博客网 时间:2024/05/17 16:46
数据访问类:
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;
}
}
- 自己写的数据访问层(使用ini文件加密存储sql数据库登陆信息)
- 自己写的数据访问层
- 使用VB.Net写一个简单的数据访问层:T-Sql函数的支持。
- 数据访问层使用存储过程分页
- 数据存储(2)使用SQL数据库
- Sql : 查看登陆信息,存储过程,查看数据库对象源代码
- 别人写的通用数据访问层 关键是存储过程
- 共享自己写的测试ini 文件读写源码
- 自己写的一个数据访问类
- log4j 日志文件存储数据库的解决方案一(配置文件中写sql语句)
- log4j 日志文件存储数据库的解决方案二(Java中写sql语句)
- 数据访问层(连接数据库)
- 使用VB.Net写一个简单的数据访问层(不能称ORM):前言
- 使用VB.Net写一个简单的数据访问层(不能称ORM):CRUD操作
- asp.net 数据访问层使用存储过程分页
- 解决C#的本地数据加密(DLL文件存储)
- 使用文件对数据进行存储、访问
- 数据访问层SqlHelper的使用
- SQL数据库应用程序发布
- 推荐一款软件: 世界上最好的查看电脑详细配置的软件
- 通用的图像模板操作函数
- 图片按比例显示
- asp.net 学习笔记
- 自己写的数据访问层(使用ini文件加密存储sql数据库登陆信息)
- HOOK专题
- 垃圾回收与强引用,软引用,弱引用,幻引用的关系
- asp.net (c#)检测sql注入的类
- 成员模板特化的概念_隶属相同的类
- 程序中打开资源管理器,显示某目录
- 网络就是力量--在线处理照片之常用处理篇
- 高斯处理
- locale 详解