1. 程式人生 > 實用技巧 >C#資料庫操作類

C#資料庫操作類

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;
    }
}