加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

An SqlServer Store Procedure DataAccess Layer Class

发布时间:2020-12-12 12:43:30 所属栏目:MsSql教程 来源:网络整理
导读:这是一个C#使用存储过程的Helper类。 using System;using System.Data;using System.Data.Sql;using System.Data.SqlClient;using System.Configuration;using System.Collections.Generic;namespace SqlServerStoredProcedureDataAccessLayer{ public class

这是一个C#使用存储过程的Helper类。

using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections.Generic;

namespace SqlServerStoredProcedureDataAccessLayer
{

    public class SqlDatabase
    {

        #region Sql Object Methods

        public static SqlConnection GetConnection(string connectionString)
        {
            SqlConnection sqlConn = new SqlConnection(connectionString);
            return sqlConn;
        }

        public static SqlConnection GetConnection()
        {
            SqlConnection sqlConn = GetConnection(DefaultConnectionString());
            return sqlConn;
        }

        public static SqlCommand GetCommand(string storedProc,string connectionString)
        {
            SqlCommand sqlCommand = new SqlCommand(storedProc,GetConnection(connectionString));
            return sqlCommand;
        }

        public static SqlCommand GetCommand(string storedProc)
        {
            SqlCommand sqlCommand = GetCommand(storedProc,DefaultConnectionString());
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc,List<SqlParameter> commandParameters,string connectionString)
        {
            SqlCommand sqlCommand = GetCommand(storedProc,connectionString);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.AttachParameters(commandParameters);
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc,SqlParameter commandParameter,connectionString);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.Add(commandParameter);
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc,connectionString);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc,List<SqlParameter> commandParameters)
        {
            SqlCommand sqlCommand = GetCommand(storedProc);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.AttachParameters(commandParameters);
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc,SqlParameter commandParameter)
        {
            SqlCommand sqlCommand = GetCommand(storedProc);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.Add(commandParameter);
            return sqlCommand;
        }

        public static SqlCommand GetStoredProcCommand(string storedProc)
        {
            SqlCommand sqlCommand = GetCommand(storedProc);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            return sqlCommand;
        }

        #endregion

        #region Connection String Methods

        public static string GetConnectionString(string key)
        {
            return ConfigurationManager.ConnectionStrings[key].ConnectionString;
        }

        private static string DefaultConnectionString()
        {
            return GetConnectionString("SqlDatabase");
        }

        #endregion

        #region ExecuteScalar

        public static object ExecuteScalar(string storedProc,string connectionString)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc,connectionString);
            return ExecuteScalar(sqlCommand);
        }

        public static object ExecuteScalar(string storedProc,commandParameter,commandParameters,connectionString);
            return ExecuteScalar(sqlCommand);
        }

        public static object ExecuteScalar(string storedProc)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc);
            return ExecuteScalar(sqlCommand);
        }

        public static object ExecuteScalar(string storedProc,SqlParameter commandParameter)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc,commandParameter);
            return ExecuteScalar(sqlCommand);
        }

        public static object ExecuteScalar(string storedProc,List<SqlParameter> commandParameters)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc,commandParameters);
            return ExecuteScalar(sqlCommand);
        }

        private static object ExecuteScalar(SqlCommand sqlCommand)
        {
            Object scalarResult;
            sqlCommand.Connection.Open();
            scalarResult = sqlCommand.ExecuteScalar();
            sqlCommand.Connection.Close();
            return scalarResult;
        }

        #endregion

        #region ExecuteNonquery

        public static void ExecuteNonquery(string storedProc,connectionString);
            sqlCommand.Connection.Open();
            sqlCommand.ExecuteNonQuery();
            sqlCommand.Connection.Close();
        }

        public static void ExecuteNonquery(string storedProc,commandParameter);
            sqlCommand.Connection.Open();
            sqlCommand.ExecuteNonQuery();
            sqlCommand.Connection.Close();
        }

        public static void ExecuteNonquery(string storedProc,commandParameters);
            sqlCommand.Connection.Open();
            sqlCommand.ExecuteNonQuery();
            sqlCommand.Connection.Close();
        }

        #endregion

        #region ExecuteReader

        public static SqlDataReader ExecuteReader(string storedProc,connectionString);
            sqlCommand.Connection.Open();
            return sqlCommand.ExecuteReader();
        }

        public static SqlDataReader ExecuteReader(string storedProc,commandParameters);
            sqlCommand.Connection.Open();
            return sqlCommand.ExecuteReader();
        }

        public static SqlDataReader ExecuteReader(string storedProc,commandParameter);
            sqlCommand.Connection.Open();
            return sqlCommand.ExecuteReader();
        }

        public static SqlDataReader ExecuteReader(string storedProc)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc);
            sqlCommand.Connection.Open();
            return sqlCommand.ExecuteReader();
        }

        #endregion

        #region Fill DataSet methods

        public static void FillDataSet(string storedProc,DataSet dataSet,connectionString);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataSet);
            sqlCommand.Connection.Close();
        }

        public static void FillDataSet(string storedProc,DataSet dataSet)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc,commandParameters);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataSet);
            sqlCommand.Connection.Close();
        }

        public static void FillDataSet(string storedProc,commandParameter);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataSet);
            sqlCommand.Connection.Close();
        }

        public static void FillDataSet(string storedProc,DataSet dataSet)
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataSet);
            sqlCommand.Connection.Close();
        }

        #endregion

        #region Fill DataTable methods

        public static void FillDataTable(string storedProc,DataTable dataTable,connectionString);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataTable);
            sqlCommand.Connection.Close();
        }

        public static void FillDataTable(string storedProc,DataTable dataTable )
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc,commandParameters);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataTable);
            sqlCommand.Connection.Close();
        }

        public static void FillDataTable(string storedProc,commandParameter);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataTable);
            sqlCommand.Connection.Close();
        }

        public static void FillDataTable(string storedProc,DataTable dataTable )
        {
            SqlCommand sqlCommand = GetStoredProcCommand(storedProc);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
            dataAdapter.Fill(dataTable);
            sqlCommand.Connection.Close();
        }

        #endregion

        #region Get DataTable methods

        public static DataTable GetDataTable(string storedProc,string connectionString)
        {
            DataTable dtResults = new DataTable();
            FillDataTable(storedProc,dtResults,connectionString);
            return dtResults;
        }

        public static DataTable GetDataTable(string storedProc,List<SqlParameter> commandParameters)
        {
            DataTable dtResults = new DataTable();
            FillDataTable(storedProc,dtResults);
            return dtResults;
        }

        public static DataTable GetDataTable(string storedProc,SqlParameter commandParameter)
        {
            DataTable dtResults = new DataTable();
            FillDataTable(storedProc,dtResults);
            return dtResults;
        }

        public static DataTable GetDataTable(string storedProc)
        {
            DataTable dtResults = new DataTable();
            FillDataTable(storedProc,dtResults);
            return dtResults;
        }

        #endregion

        #region Get DataSet methods

        public static DataSet GetDataSet(string storedProc,string connectionString)
        {
            DataSet dsResults = new DataSet();
            FillDataSet(storedProc,dsResults,connectionString);
            return dsResults;
        }

        public static DataSet GetDataSet(string storedProc,List<SqlParameter> commandParameters )
        {
            DataSet dsResults = new DataSet();
            FillDataSet(storedProc,dsResults);
            return dsResults;
        }

        public static DataSet GetDataSet(string storedProc,SqlParameter commandParameter )
        {
            DataSet dsResults = new DataSet();
            FillDataSet(storedProc,dsResults);
            return dsResults;
        }

        public static DataSet GetDataSet(string storedProc )
        {
            DataSet dsResults = new DataSet();
            FillDataSet(storedProc,dsResults);
            return dsResults;
        }

        #endregion

    }

    internal static class SqlDatabaseExtensions
    {
        public static void AttachParameters(this SqlCommand command,List<SqlParameter> commandParameters)
        {
            command.Parameters.AddRange(commandParameters.ToArray());

            //if (commandParameters != null)
            //{
            //    foreach (SqlParameter p in commandParameters)
            //    {
            //        if (p != null)
            //        {
            //            // Check for derived output value with no value assigned 
            //            if ((p.Direction == ParameterDirection.InputOutput ||
            //                p.Direction == ParameterDirection.Input) &&
            //                (p.Value == null))
            //            {
            //                p.Value = DBNull.Value;
            //            }
            //            command.Parameters.Add(p);
            //        }
            //    }
            //}
        }
    }




}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读