数据库操作类与Xml文档操作(保存/读取Connectionstring)
2007-03-01 08:38
561 查看
using System;
using System.Collections;
using System.Text;
using System.Security.Cryptography;
using System.IO;
/// <summary>
/// 数据库操作类与Xml文档操作(保存/读取Connectionstring)
/// </summary>
class DBOperation
{
/// <summary>
/// 配置文件结构
/// </summary>
public struct ConfigStruct
{
/// <summary>
/// 数据库服务器主机地址
/// </summary>
public string hostAddress ;
/// <summary>
/// 用户名
/// </summary>
public string userName ;
/// <summary>
/// 密码
/// </summary>
public string password ;
/// <summary>
/// 数据库名
/// </summary>
public string DBName ;
}
/// <summary>
/// 类构造函数
/// </summary>
public DBOperation()
{
//
}
#region 定义用于写XML文档的字段名的变量
private string str_HA = "hostAddress";
private string str_UN = "userName";
private string str_PWD = "password";
private string str_DBN = "DBName";
#endregion
#region 读写Xml文档
/// <summary>
/// 读XML文档
/// </summary>
/// <param name="name">要取的配置文件中的指定数据源的名字,如:旧系统 "oldsystem" </param>
public ConfigStruct readXML(string name)
{
try
{
//定义新的结构变量
ConfigStruct cfg = new ConfigStruct();
//定义一个新的dataset
System.Data.DataSet ds = new System.Data.DataSet();
//判断文件是否存在,不存在提示错误并返回一个空的结构对象
if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
//如果存在则读取config.xml文件的数据
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
else
{
// System.Windows.Forms.MessageBox.Show("config.xml文件不存在!" , "警告",
// System.Windows.Forms.MessageBoxButtons.OK ,
// System.Windows.Forms.MessageBoxIcon.Warning);
return new ConfigStruct();
}
//判断表是否存在,不存在提示错误并返回一个空的结构对象
if (ds.Tables.IndexOf(name.ToUpper())== -1 )
{
// System.Windows.Forms.MessageBox.Show("在config.xml中不能找到相关的数据源的配置信息!" , "警告",
// System.Windows.Forms.MessageBoxButtons.OK ,
// System.Windows.Forms.MessageBoxIcon.Warning);
return new ConfigStruct();
}
SymmetricMethod sm = new SymmetricMethod();
//存在则取其值
cfg.hostAddress = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_HA) + "'")[0]["value"].ToString());
cfg.userName = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_UN) + "'")[0]["value"].ToString());
cfg.password = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_PWD) + "'")[0]["value"].ToString());
cfg.DBName = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_DBN) + "'")[0]["value"].ToString());
ds.Dispose();
return cfg;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new ConfigStruct();
}
}
/// <summary>
/// 写XML文档
/// </summary>
/// <param name="name">数据源的名称</param>
/// <param name="hostAddress">主机地址值</param>
/// <param name="DBName">数据库名称</param>
/// <param name="UserName">用户名</param>
/// <param name="password">密码</param>
/// <param name="con_str">数据库的数据源信息</param>
public Boolean writeXML(string name , string hostAddress ,string DBName ,
string UserName ,string password)
{
try
{
//定义一个dataset
System.Data.DataSet ds = new System.Data.DataSet("config");
//判断是否存在config.xml文件,如果存在从该文件中读取内容到dataset
if(System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
//判断是否存在该表,如果存在则删除该表
if(ds.Tables.IndexOf(name.ToUpper()) != -1 )
{
ds.Tables.Remove(name.ToUpper());
}
//定义一个datatable
System.Data.DataTable dt = new System.Data.DataTable(name.ToUpper());
//为新定义的表增加列
dt.Columns.Add("key");
dt.Columns.Add("value");
SymmetricMethod sm = new SymmetricMethod();
//增加记录表新定义的表中
dt.Rows.Add(new object[2]{ sm.Encrypto( str_HA ) , sm.Encrypto( hostAddress)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_UN ) , sm.Encrypto( UserName)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_PWD) , sm.Encrypto( password)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_DBN) , sm.Encrypto( DBName)});
//将表增加到定义的新的dataset中
ds.Tables.Add(dt);
//写入xml文档
ds.WriteXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
//释放datatable 与 dataset
dt.Dispose();
ds.Dispose();
return true;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return false;
}
}
/// <summary>
/// 写XML文档
/// </summary>
/// <param name="hostAddress">数据库服务器主机名</param>
/// <param name="con_str">数据库的数据源信息</param>
public void writeXML(string name , ConfigStruct con_str)
{
try
{
//定义一个dataset
System.Data.DataSet ds = new System.Data.DataSet("config");
//判断是否存在config.xml文件,如果存在从该文件中读取内容到dataset
if(System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
//判断是否存在该表,如果存在则删除该表
if(ds.Tables.IndexOf(name.ToUpper()) != -1 )
{
ds.Tables.Remove(name.ToUpper());
}
//定义一个datatable
System.Data.DataTable dt = new System.Data.DataTable(name.ToUpper());
//为新定义的表增加列
dt.Columns.Add("key");
dt.Columns.Add("value");
SymmetricMethod sm = new SymmetricMethod();
//增加记录表新定义的表中
dt.Rows.Add(new object[2]{ sm.Encrypto( str_HA ), sm.Encrypto( con_str.hostAddress)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_UN ), sm.Encrypto( con_str.userName)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_PWD ), sm.Encrypto( con_str.password)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_DBN ), sm.Encrypto( con_str.DBName)});
//将表增加到定义的新的dataset中
ds.Tables.Add(dt);
//写入xml文档
ds.WriteXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
//释放datatable 与 dataset
dt.Dispose();
ds.Dispose();
}
catch(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
throw exp;
}
}
#endregion
#region 数据库操作类
/// <summary>
/// 返回连接字符串(传入多个字符串)
/// </summary>
/// <param name="hostAddress">数据库服务器的主机地址</param>
/// <param name="userName">登陆的用户名</param>
/// <param name="Password">登陆的用户密码</param>
/// <param name="DBName">数据库名</param>
/// <returns>String 连接字符串</returns>
public string getConnectionString(string hostAddress , string userName ,
string Password , string DBName)
{
try
{
return "Data Source="+hostAddress+";Initial Catalog="+DBName+
";Persist Security Info=True;User ID="+userName+";Password="+Password+
";packet size=4096";
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return null;
}
}
/// <summary>
/// 返回连接字符串(传入一个结构对象)
/// </summary>
/// <param name="hostAddress">保存数据源的结构对象</param>
/// <returns>String 连接字符串</returns>
public string getConnectionString(ConfigStruct con_str)
{
try
{
return "Data Source="+con_str.hostAddress+";Initial Catalog="+con_str.DBName+
";Persist Security Info=True;User ID="+con_str.userName+";Password="+con_str.password+
";packet size=4096";
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return null;
}
}
/// <summary>
/// 返回一个新的Connection对象,不打开连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public System.Data.SqlClient.SqlConnection connInit(string connectionString)
{
try
{
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = connectionString;
return conn;
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.SqlClient.SqlConnection();
}
}
/// <summary>
/// 返回一个新的Connection对象,不打开连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public void connDispose(System.Data.SqlClient.SqlConnection sqlConn)
{
try
{
if(sqlConn.State == System.Data.ConnectionState.Open)
{
sqlConn.Close();
}
sqlConn.Dispose();
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
}
}
/// <summary>
/// 返回一个新的Connection对象并找开该连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public System.Data.SqlClient.SqlConnection connInitAndOpen(string connectionString)
{
try
{
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = connectionString;
conn.Open();
return conn;
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.SqlClient.SqlConnection();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
/// <returns>System.Data.DataTable</returns>
public System.Data.DataTable execSqlReturnDataTable(System.Data.SqlClient.SqlConnection conn ,
string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
System.Data.SqlClient.SqlDataAdapter dap = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataTable dt = new System.Data.DataTable();
dap.Fill(dt);
cmd.Dispose();
conn.Close();
dap.Dispose();
conn.Close();
return dt;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.DataTable();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
/// <returns>System.Data.DataSet</returns>
public System.Data.DataSet execSqlReturnDataSet(System.Data.SqlClient.SqlConnection conn ,
string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
System.Data.SqlClient.SqlDataAdapter dap = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
dap.Fill(ds);
cmd.Dispose();
conn.Close();
dap.Dispose();
return ds;
}
catch//(Exception exp)
{
// System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.DataSet();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
public Boolean execSql(System.Data.SqlClient.SqlConnection conn , string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
int i = cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
return true;
}
// catch//(NullReferenceException Nexp)
// {
// //System.Windows.Forms.MessageBox.Show(Nexp.Message);
// return false;
// }
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return false;
}
}
#endregion
}
/// <summary>
/// 对称加密算法类
/// </summary>
public class SymmetricMethod
{
private SymmetricAlgorithm mobjCryptoService;
private string Key;
/// <summary>
/// 对称加密类的构造函数
/// </summary>
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = @"Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
/// <summary>
/// 获得密钥
/// </summary>
/// <returns>密钥</returns>
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < KeyLength)
sTemp = sTemp.PadRight(KeyLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 获得初始向量IV
/// </summary>
/// <returns>初试向量IV</returns>
private byte[] GetLegalIV()
{
string sTemp = @"E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
mobjCryptoService.GenerateIV();
byte[] bytTemp = mobjCryptoService.IV;
int IVLength = bytTemp.Length;
if (sTemp.Length > IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < IVLength)
sTemp = sTemp.PadRight(IVLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 加密方法
/// </summary>
/// <param name="Source">待加密的串</param>
/// <returns>经过加密的串</returns>
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
/// <summary>
/// 解密方法
/// </summary>
/// <param name="Source">待解密的串</param>
/// <returns>经过解密的串</returns>
public string Decrypto(string Source)
{
try
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
catch(Exception exp)
{
return "";
}
}
}
using System.Collections;
using System.Text;
using System.Security.Cryptography;
using System.IO;
/// <summary>
/// 数据库操作类与Xml文档操作(保存/读取Connectionstring)
/// </summary>
class DBOperation
{
/// <summary>
/// 配置文件结构
/// </summary>
public struct ConfigStruct
{
/// <summary>
/// 数据库服务器主机地址
/// </summary>
public string hostAddress ;
/// <summary>
/// 用户名
/// </summary>
public string userName ;
/// <summary>
/// 密码
/// </summary>
public string password ;
/// <summary>
/// 数据库名
/// </summary>
public string DBName ;
}
/// <summary>
/// 类构造函数
/// </summary>
public DBOperation()
{
//
}
#region 定义用于写XML文档的字段名的变量
private string str_HA = "hostAddress";
private string str_UN = "userName";
private string str_PWD = "password";
private string str_DBN = "DBName";
#endregion
#region 读写Xml文档
/// <summary>
/// 读XML文档
/// </summary>
/// <param name="name">要取的配置文件中的指定数据源的名字,如:旧系统 "oldsystem" </param>
public ConfigStruct readXML(string name)
{
try
{
//定义新的结构变量
ConfigStruct cfg = new ConfigStruct();
//定义一个新的dataset
System.Data.DataSet ds = new System.Data.DataSet();
//判断文件是否存在,不存在提示错误并返回一个空的结构对象
if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
//如果存在则读取config.xml文件的数据
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
else
{
// System.Windows.Forms.MessageBox.Show("config.xml文件不存在!" , "警告",
// System.Windows.Forms.MessageBoxButtons.OK ,
// System.Windows.Forms.MessageBoxIcon.Warning);
return new ConfigStruct();
}
//判断表是否存在,不存在提示错误并返回一个空的结构对象
if (ds.Tables.IndexOf(name.ToUpper())== -1 )
{
// System.Windows.Forms.MessageBox.Show("在config.xml中不能找到相关的数据源的配置信息!" , "警告",
// System.Windows.Forms.MessageBoxButtons.OK ,
// System.Windows.Forms.MessageBoxIcon.Warning);
return new ConfigStruct();
}
SymmetricMethod sm = new SymmetricMethod();
//存在则取其值
cfg.hostAddress = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_HA) + "'")[0]["value"].ToString());
cfg.userName = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_UN) + "'")[0]["value"].ToString());
cfg.password = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_PWD) + "'")[0]["value"].ToString());
cfg.DBName = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_DBN) + "'")[0]["value"].ToString());
ds.Dispose();
return cfg;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new ConfigStruct();
}
}
/// <summary>
/// 写XML文档
/// </summary>
/// <param name="name">数据源的名称</param>
/// <param name="hostAddress">主机地址值</param>
/// <param name="DBName">数据库名称</param>
/// <param name="UserName">用户名</param>
/// <param name="password">密码</param>
/// <param name="con_str">数据库的数据源信息</param>
public Boolean writeXML(string name , string hostAddress ,string DBName ,
string UserName ,string password)
{
try
{
//定义一个dataset
System.Data.DataSet ds = new System.Data.DataSet("config");
//判断是否存在config.xml文件,如果存在从该文件中读取内容到dataset
if(System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
//判断是否存在该表,如果存在则删除该表
if(ds.Tables.IndexOf(name.ToUpper()) != -1 )
{
ds.Tables.Remove(name.ToUpper());
}
//定义一个datatable
System.Data.DataTable dt = new System.Data.DataTable(name.ToUpper());
//为新定义的表增加列
dt.Columns.Add("key");
dt.Columns.Add("value");
SymmetricMethod sm = new SymmetricMethod();
//增加记录表新定义的表中
dt.Rows.Add(new object[2]{ sm.Encrypto( str_HA ) , sm.Encrypto( hostAddress)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_UN ) , sm.Encrypto( UserName)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_PWD) , sm.Encrypto( password)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_DBN) , sm.Encrypto( DBName)});
//将表增加到定义的新的dataset中
ds.Tables.Add(dt);
//写入xml文档
ds.WriteXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
//释放datatable 与 dataset
dt.Dispose();
ds.Dispose();
return true;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return false;
}
}
/// <summary>
/// 写XML文档
/// </summary>
/// <param name="hostAddress">数据库服务器主机名</param>
/// <param name="con_str">数据库的数据源信息</param>
public void writeXML(string name , ConfigStruct con_str)
{
try
{
//定义一个dataset
System.Data.DataSet ds = new System.Data.DataSet("config");
//判断是否存在config.xml文件,如果存在从该文件中读取内容到dataset
if(System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
{
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
}
//判断是否存在该表,如果存在则删除该表
if(ds.Tables.IndexOf(name.ToUpper()) != -1 )
{
ds.Tables.Remove(name.ToUpper());
}
//定义一个datatable
System.Data.DataTable dt = new System.Data.DataTable(name.ToUpper());
//为新定义的表增加列
dt.Columns.Add("key");
dt.Columns.Add("value");
SymmetricMethod sm = new SymmetricMethod();
//增加记录表新定义的表中
dt.Rows.Add(new object[2]{ sm.Encrypto( str_HA ), sm.Encrypto( con_str.hostAddress)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_UN ), sm.Encrypto( con_str.userName)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_PWD ), sm.Encrypto( con_str.password)});
dt.Rows.Add(new object[2]{ sm.Encrypto( str_DBN ), sm.Encrypto( con_str.DBName)});
//将表增加到定义的新的dataset中
ds.Tables.Add(dt);
//写入xml文档
ds.WriteXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
//释放datatable 与 dataset
dt.Dispose();
ds.Dispose();
}
catch(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
throw exp;
}
}
#endregion
#region 数据库操作类
/// <summary>
/// 返回连接字符串(传入多个字符串)
/// </summary>
/// <param name="hostAddress">数据库服务器的主机地址</param>
/// <param name="userName">登陆的用户名</param>
/// <param name="Password">登陆的用户密码</param>
/// <param name="DBName">数据库名</param>
/// <returns>String 连接字符串</returns>
public string getConnectionString(string hostAddress , string userName ,
string Password , string DBName)
{
try
{
return "Data Source="+hostAddress+";Initial Catalog="+DBName+
";Persist Security Info=True;User ID="+userName+";Password="+Password+
";packet size=4096";
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return null;
}
}
/// <summary>
/// 返回连接字符串(传入一个结构对象)
/// </summary>
/// <param name="hostAddress">保存数据源的结构对象</param>
/// <returns>String 连接字符串</returns>
public string getConnectionString(ConfigStruct con_str)
{
try
{
return "Data Source="+con_str.hostAddress+";Initial Catalog="+con_str.DBName+
";Persist Security Info=True;User ID="+con_str.userName+";Password="+con_str.password+
";packet size=4096";
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return null;
}
}
/// <summary>
/// 返回一个新的Connection对象,不打开连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public System.Data.SqlClient.SqlConnection connInit(string connectionString)
{
try
{
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = connectionString;
return conn;
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.SqlClient.SqlConnection();
}
}
/// <summary>
/// 返回一个新的Connection对象,不打开连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public void connDispose(System.Data.SqlClient.SqlConnection sqlConn)
{
try
{
if(sqlConn.State == System.Data.ConnectionState.Open)
{
sqlConn.Close();
}
sqlConn.Dispose();
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
}
}
/// <summary>
/// 返回一个新的Connection对象并找开该连接
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <returns>System.Data.SqlClient.SqlConnection</returns>
public System.Data.SqlClient.SqlConnection connInitAndOpen(string connectionString)
{
try
{
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = connectionString;
conn.Open();
return conn;
}
catch //(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.SqlClient.SqlConnection();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
/// <returns>System.Data.DataTable</returns>
public System.Data.DataTable execSqlReturnDataTable(System.Data.SqlClient.SqlConnection conn ,
string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
System.Data.SqlClient.SqlDataAdapter dap = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataTable dt = new System.Data.DataTable();
dap.Fill(dt);
cmd.Dispose();
conn.Close();
dap.Dispose();
conn.Close();
return dt;
}
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.DataTable();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
/// <returns>System.Data.DataSet</returns>
public System.Data.DataSet execSqlReturnDataSet(System.Data.SqlClient.SqlConnection conn ,
string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
System.Data.SqlClient.SqlDataAdapter dap = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
dap.Fill(ds);
cmd.Dispose();
conn.Close();
dap.Dispose();
return ds;
}
catch//(Exception exp)
{
// System.Windows.Forms.MessageBox.Show(exp.Message);
return new System.Data.DataSet();
}
}
/// <summary>
/// 执行SQL语句并返回DateTable
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="sqlString">SQL语句</param>
public Boolean execSql(System.Data.SqlClient.SqlConnection conn , string sqlString)
{
try
{
if (conn.State == System.Data.ConnectionState.Closed )
{
conn.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlString , conn);
cmd.CommandTimeout = 36000 ;
int i = cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
return true;
}
// catch//(NullReferenceException Nexp)
// {
// //System.Windows.Forms.MessageBox.Show(Nexp.Message);
// return false;
// }
catch//(Exception exp)
{
//System.Windows.Forms.MessageBox.Show(exp.Message);
return false;
}
}
#endregion
}
/// <summary>
/// 对称加密算法类
/// </summary>
public class SymmetricMethod
{
private SymmetricAlgorithm mobjCryptoService;
private string Key;
/// <summary>
/// 对称加密类的构造函数
/// </summary>
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = @"Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
/// <summary>
/// 获得密钥
/// </summary>
/// <returns>密钥</returns>
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < KeyLength)
sTemp = sTemp.PadRight(KeyLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 获得初始向量IV
/// </summary>
/// <returns>初试向量IV</returns>
private byte[] GetLegalIV()
{
string sTemp = @"E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
mobjCryptoService.GenerateIV();
byte[] bytTemp = mobjCryptoService.IV;
int IVLength = bytTemp.Length;
if (sTemp.Length > IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < IVLength)
sTemp = sTemp.PadRight(IVLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 加密方法
/// </summary>
/// <param name="Source">待加密的串</param>
/// <returns>经过加密的串</returns>
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
/// <summary>
/// 解密方法
/// </summary>
/// <param name="Source">待解密的串</param>
/// <returns>经过解密的串</returns>
public string Decrypto(string Source)
{
try
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
catch(Exception exp)
{
return "";
}
}
}
相关文章推荐
- 数据库操作类与Xml文档操作(保存/读取Connectionstring)
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
- C# 文本文档操作——读取、保存、编辑
- android解压zip到sdcard,并读取解压缩后文件中的xml特定信息,并保存到数据库
- 将图片保存在 array.xml 成string-array 以及读取
- 从数据库Mysql读取数据转化为xml文档的Java类
- Metro Style App开发快速入门 之XML文件读取,修改,保存等操作
- 关于XML文档读取写入的简单操作
- java中利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。
- JavaScript读取xml文档中的数据库,并分页显示
- 对xml文档进行增删改查操作后将其修改结果保存
- 【原创】简单的XML文档读取与操作
- 由xml保存数据库读取的数据
- word 文档的保存数据及读取,类似图片,数据库设置图片格式(image)
- XML解析器可以读取、更新、创建、操作一个XML文档
- 根据XML文档读取连接数据库信息
- java解析xml文档并保存到数据库
- 通过dom4j对xml文档的读取操作工具类封装