1. 程式人生 > >ado.net SqlHelp類

ado.net SqlHelp類

傳參數 需要 table object exce ins upd sql語句 識別器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace Reservation.DAL
{
    public class SqlHelper
    {
        /// <summary>
        /// 自定義數據庫連接字符串
        /// </summary>
        public
static string ConnString = @"Data Source=.;Initial Catalog=DB_Date_Plan; User ID=sa;Pwd=111111"; /// <summary> /// 應用程序下獲取連接字符串 /// </summary> //public static string ConnString //{ // get { // return System.Configuration.ConfigurationManager.ConnectionStrings["connstring"].ToString();
// } //} /// <summary> /// 執行一個Sql語句返回受影響的行數 /// </summary> /// <param name="sql">insert,update,delete或相關的存儲過程</param> /// <param name="type">命令類型:SQL語句還是存儲過程</param> /// <param name="pars">SQL語句所需要的參數</param> public
static int ExcuteSQLReturnInt(string sql, CommandType type, params SqlParameter[] pars) { //定義連接對象 SqlConnection conn = new SqlConnection(ConnString); //判斷連接對象的狀態,並且打開 if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } try { //實例化命令對象 SqlCommand cmd = new SqlCommand(sql, conn); //判斷CommandType類型是否是SQL語句還是存儲過程 cmd.CommandType = type; if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { cmd.Parameters.Add(p); } } //調用方法執行SQL語句或存儲過程 int count = cmd.ExecuteNonQuery(); return count; } catch (Exception ex) { return 0; } finally { //記得要關閉連接 conn.Close(); } } /// <summary> /// 執行一個Sql語句或存儲過程,返回一條記錄,sqldataReader /// </summary> /// <param name="sql">select語句,或相關的存儲過程</param> /// <param name="type">指定命令類型,sql語句還是存儲過程,默認的是sql語句</param> /// <param name="pars">參數的集合</param> /// <returns></returns> public static SqlDataReader ExcuteSqlReturnReader(string sql, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } SqlCommand cmd = new SqlCommand(sql, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { cmd.Parameters.Add(p); } } cmd.CommandType = type; //當reader.close(),也就是關閉了datareader時,CommandBehavior.CloseConnection 也會關閉連接! SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } /// <summary> /// 執行一個sql語句或存儲過程,不帶參數的!返回一天記錄 sqldataReader /// </summary> /// <param name="sql"></param> /// <param name="type"></param> /// <returns></returns> public static SqlDataReader ExcuteSqlReturnReader(string sql, CommandType type) { SqlConnection conn = new SqlConnection(ConnString); if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } SqlCommand cmd = new SqlCommand(sql, conn); cmd.CommandType = type; //當reader.close(),也就是關閉了datareader時,CommandBehavior.CloseConnection 也會關閉連接! SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } /// <summary> /// 執行一個Sql語句或存儲過程,返回一個數據集,dataset /// </summary> /// <param name="sql">select語句或相關的存儲過程</param> /// <param name="type">命令類型</param> /// <param name="pars">命令類型</param> /// <returns>DataSet</returns> public static DataSet SelectSqlReturnDataset(string sql, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); //數據集識別器對象SqlDataAdapter 會自動打開數據庫鏈接! SqlDataAdapter sda = new SqlDataAdapter(sql, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { sda.SelectCommand.Parameters.Add(p); } } sda.SelectCommand.CommandType = type; DataSet ds = new DataSet(); sda.Fill(ds); return ds; } /// <summary> /// 執行一個sql語句返回一個數據表對象 /// </summary> /// <param name="sql">select</param> /// <param name="type">命令類型</param> /// <param name="pars">參數集合</param> /// <returns>DataTable</returns> public static DataTable SelectSqlReturnDataTable(string sql, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { sda.SelectCommand.Parameters.Add(p); } } sda.SelectCommand.CommandType = type; DataTable dt = new DataTable(); sda.Fill(dt); return dt; } //******************************************************************* //SelectSqlReturnDataTable方法的重載,不傳參數的情況下 /// <summary> /// 執行一個sql語句返回一個數據表對象,不傳參數 /// </summary> /// <param name="sql">select</param> /// <param name="type">命令類型</param> /// <returns></returns> public static DataTable SelectSqlReturnDataTable(string sql, CommandType type) { SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.SelectCommand.CommandType = type; DataTable dt = new DataTable(); sda.Fill(dt); return dt; } /// <summary> /// 執行一個sql語句或相關的存儲過程,返回一個值 /// </summary> /// <param name="sql">select count(*) from tablename where ....</param> /// <param name="type">命令類型</param> /// <param name="pars">所需的參數</param> /// <returns>object</returns> public static object selectSqlReturnObject(string sql, CommandType type, SqlParameter[] pars) { SqlConnection conn = new SqlConnection(ConnString); if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } try { SqlCommand cmd = new SqlCommand(sql, conn); cmd.CommandType = type; if (pars != null && pars.Length > 0) { foreach (SqlParameter p in pars) { cmd.Parameters.Add(p); } } object obj = cmd.ExecuteScalar(); return obj; } catch (Exception ex) { return null; } finally { conn.Close(); } } /// <summary> /// 執行一個sql語句或相關的存儲過程,返回一個值,不傳參數 /// </summary> /// <param name="sql"></param> /// <param name="type"></param> /// <returns></returns> public static object selectSqlReturnObject(string sql, CommandType type) { SqlConnection conn = new SqlConnection(ConnString); if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) { conn.Open(); } try { SqlCommand cmd = new SqlCommand(sql, conn); cmd.CommandType = type; object obj = cmd.ExecuteScalar(); return obj; } catch (Exception ex) { return null; } finally { conn.Close(); } } } }

ado.net SqlHelp類