资源简介

C#的sqlserver数据库操作封装类,封装了sql语句的查询、修改、插入、删除操作,以及存储过程的执行,包括有输入、输出参数的存储过程,存储过程的执行无需输入任何参数名称,只需输入参数值即可。同时封装了大批量数据的更新操作,是普通DataAdapter和Command批量操作效率的30倍以上。

资源截图

代码片段和文件信息

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

namespace SqlHelper
{
    public class SqlCompose
    {
        #region 构造函数
        /// 
        /// 构造函数
        /// 

        /// 
        public SqlCompose(string connStr)
        {
            this.connStr = connStr;
        }
        #endregion

        #region 变量
        //数据库连接对象
        private SqlConnection _connection = null;
        //数据库连接字符串
        private string connStr = string.Empty;
        #endregion

        #region 属性
        /// 
        /// 数据库连接对象
        /// 

        private SqlConnection Connnection
        {
            get
            {
                if (this._connection == null || this._connection.State == ConnectionState.Broken || this._connection.State == ConnectionState.Closed)
                {
                    this._connection = new SqlConnection(connStr);
                }
                return this._connection;
            }            
        }
        #endregion

        #region 方法
        #region BuildQueryCommand
        /// 
        /// 创建Command对象
        /// 

        /// sql语句或存储过程名称
        /// 是否是存储过程
        /// 输入参数集合   
        /// 输出参数集合 
        /// 
        private SqlCommand BuildQueryCommand(string sqlOrprocedureName bool isProcedure object[] inParameters object[] outParameters)
        {
            SqlCommand command = new SqlCommand(sqlOrprocedureName this.Connnection);
            command.CommandType = isProcedure ? CommandType.StoredProcedure : CommandType.Text;

            if (isProcedure && ((inParameters != null && inParameters.Length > 0) || (outParameters != null && outParameters.Length > 0)))
            {
                //获取存储过程参数,获取参数顺序为,存储过程执行返回值ReturnValue>输入参数Input>输入输出参数InputOutput>输出参数Output。
                //其中Output为纯输出参数,不用传参,但sqlserver存储过程里定义的输出参数,在C#中一般为InputOutput类型,除非存储过程中定义的是返回值而非输出参数。
                command.Connection.Open();
                SqlCommandBuilder.DeriveParameters(command);
                command.Connection.Close();
                
                try
                {                   
                    //存储过程参数赋值
                    for (int i = 1; i < command.Parameters.Count; i++)
                    {
                        if (inParameters != null && inParameters.Length > 0 && i <= inParameters.Length)
                        {
                            command.Parameters[i].Value = inParameters[i - 1];
                        }
                        else if (outParameters != null && outParameters.Length > 0)
                        {
       

评论

共有 条评论