您的位置:首页 > 运维架构 > 网站架构

C#的DBHelper类,用于winform or 用于ASP.NET网站

2016-12-21 14:41 281 查看
自己用的,处理了很多项目了,收藏好,Nice~

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Data;

using System.Data.SqlClient;

using System.Security.Cryptography;

using System.Text;//MD5加密需引入的命名空间

///

///DB 的摘要说明

///

public class DB

{

public DB()

{

//

//TODO: 在此处添加构造函数逻辑

//

}

/// <summary>
/// 连接数据库
/// </summary>
/// <returns>返回SqlConnection对象</returns>
public SqlConnection GetCon()
{
return new SqlConnection("Data Source=127.0.0.1;Initial Catalog=guipei;Persist Security Info=True;User ID=zh;Password=sa");
}

/// <summary>
/// 执行SQL语句
/// </summary>
///<param name="cmdstr">SQL语句</param>
/// <returns>返回值为int型:成功返1,失败返回0</returns>
public int sqlEx(string cmdstr)
{
SqlConnection con = GetCon();//连接数据库
con.Open();//打开连接
SqlCommand cmd = new SqlCommand(cmdstr, con);
try
{
cmd.ExecuteNonQuery();//执行SQL 语句并返回受影响的行数
return 1;//成功返回1
}
catch (Exception e)
{
return 0;//失败返回0
}
finally
{
con.Dispose();//释放连接对象资源
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
///<param name="cmdstr">SQL语句</param>
/// <returns>返回值为int型:返回受影响的行数</returns>
public int sqlNonQuery(string cmdstr)
{
SqlConnection con = GetCon();//连接数据库
con.Open();//打开连接
SqlCommand cmd = new SqlCommand(cmdstr, con);
try
{
int s = cmd.ExecuteNonQuery();//执行SQL 语句并返回受影响的行数
return s;//成功返回行数
}
catch (Exception e)
{
return -1;//失败返回-1
}
finally
{
con.Dispose();//释放连接对象资源
}
}

public DataSet reDs(string cmdstr)
{
SqlConnection con = GetCon();
SqlDataAdapter da = new SqlDataAdapter(cmdstr, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

/// <summary>
///
///
///
///
///
/// 执行SQL查询语句
/// </summary>
/// <param name="cmdstr">查询语句</param>
/// <returns>返回DataTable数据表</returns>
public DataTable reDt(string cmdstr)
{
SqlConnection con = GetCon();
SqlDataAdapter da = new SqlDataAdapter(cmdstr, con);
DataSet ds = new DataSet();
da.Fill(ds);
return (ds.Tables[0]);
}
/// <summary>
/// 执行SQL查询语句
/// </summary>
/// <param name="str">查询语句</param>
/// <returns>返回SqlDataReader对象dr</returns>
public SqlDataReader reDr(string str)
{
SqlConnection conn = GetCon();//连接数据库
conn.Open();//并打开了连接
SqlCommand com = new SqlCommand(str, conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;//返回SqlDataReader对象dr
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="strPwd">被加密的字符串</param>
/// <returns>返回加密后的字符串</returns>
public string GetMD5(string strPwd)
{
/*string pwd = "";
//实例化一个md5对象
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
//翻转生成的MD5码
s.Reverse();
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
//只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
for (int i = 3; i < s.Length - 1; i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//进一步对生成的MD5码做一些改造
pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
}
return pwd;*/
//string pwd = "";
//实例化一个md5对象
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
/* byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
//翻转生成的MD5码
s.Reverse();
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
//只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
for (int i = 3; i < s.Length - 1; i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//进一步对生成的MD5码做一些改造
pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
}*/

var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
var sb = new StringBuilder();
foreach (byte b in bs)
{
sb.Append(b.ToString("x2"));
}
//所有字符转为大写
return sb.ToString();
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息