using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Text; using System.Security.Cryptography;//MD5加密需引入的命名空間 using System.Data.SqlClient;//數據庫操做需引入的命名空間 /// <summary> /// DB 的摘要說明 /// </summary> public class DB { public DB() { // // TODO: 在此處添加構造函數邏輯 // } /// <summary> /// 鏈接數據庫 /// </summary> /// <returns>返回SqlConnection對象</returns> public SqlConnection GetCon() { return new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); } /// <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">查詢語句</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; } }