C#的DBHelper類,用於winform or 用於ASP.NET網站
阿新 • • 發佈:2019-02-14
自己用的,處理了很多專案了,收藏好,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(); }
}