1. 程式人生 > >C#的DBHelper類,用於winform or 用於ASP.NET網站

C#的DBHelper類,用於winform or 用於ASP.NET網站

自己用的,處理了很多專案了,收藏好,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();
}

}