`
niunan
  • 浏览: 721060 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

自己封装的MSSQL的数据库操作类

    博客分类:
  • .NET
阅读更多

/*
 * 作者: 牛腩
 * 创建时间: 2010-1-20 10:43:14
 * Email: 164423073@qq.com
 * 说明: 对MSSQL数据库的增删查改操作的封装类
 */


using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;


namespace Niunan.Tg029.Hr.Utility
{
    public class MSSQLHelper
    {
        private SqlConnection conn = null;
        private SqlCommand cmd = null;
        private SqlDataReader sdr = null;


        public MSSQLHelper()
        {
            string connStr = WebConfigurationManager.ConnectionStrings["connStr"].ToString();
            conn = new SqlConnection(connStr);
        }


        /// <summary>创建Command对象
        /// 默认是SQL语句
        /// </summary>
        /// <param name="sql">SQL语句</param>
        public void CreateCommand(string sql)
        {
            conn.Open();
            cmd = new SqlCommand(sql, conn);
        }


        /// <summary>创建存储过程的Command对象
        /// 
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        public void CreateStoredCommand(string procName)
        {
            conn.Open();
            cmd = new SqlCommand(procName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
        }


        /// <summary>添加参数
        /// 默认是输入参数
        /// </summary>
        /// <param name="paramName">参数名称</param>
        /// <param name="value">值</param>
        public void AddParameter(string paramName, object value)
        {
            SqlParameter p = new SqlParameter(paramName, value);
            cmd.Parameters.Add(p);
        }


        /// <summary>添加输出参数
        /// 用于存储过程
        /// </summary>
        /// <param name="paramName">参数名称</param>
        /// <param name="value">值</param>
        public void AddOutputParameter(string paramName) {
            SqlParameter p = new SqlParameter();
            p.ParameterName = paramName;
            p.Direction = ParameterDirection.Output;
            p.Size = 20;
            cmd.Parameters.Add(p);
        }


        /// <summary>获取输出参数的值
        /// 
        /// </summary>
        /// <param name="paramName">输出参数名称</param>
        /// <returns></returns>
        public string GetOutputParameter(string paramName) {
            return cmd.Parameters[paramName].Value.ToString();
        }


        /// <summary>执行增删改SQL语句或存储过程
        ///  
        /// </summary>
        /// <returns></returns>
        public bool ExecuteNonQuery()
        {
            int res;
            try
            {
                res = cmd.ExecuteNonQuery();
                if (res > 0)
                {
                    return true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return false;
        }


        /// <summary>执行查询SQL语句或存储过程
        ///  
        /// </summary>
        /// <returns></returns>
        public DataTable ExecuteQuery()
        {
            DataTable dt = new DataTable();
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }


        /// <summary>返回查询SQL语句或存储过程查询出的结果的第一行第一列的值
        /// 
        /// </summary>
        /// <returns></returns>
        public string ExecuteScalar()
        {
            string res = "";
            try
            {
                object obj = cmd.ExecuteScalar();
                if (obj != null)
                {
                    res = obj.ToString();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return res;
        }




    }
}
 先记下来,以备不时之需!!!
分享到:
评论

相关推荐

    vc的mysql,excel,access,mssql数据库操作封装类

    标题中的"vc的mysql,excel,access,mssql数据库操作封装类"表明这是一个针对Visual C++ (VC)开发的程序库,它集成了对四种不同类型的数据库系统的操作支持:MySQL、Excel、Access和Microsoft SQL Server (MSSQL)。...

    php +MSSQL数据库访问类

    首先,`mssql.class.php`很可能包含了一个PHP类,该类用于封装与MSSQL数据库的交互。在PHP中,我们可以创建一个类来处理所有数据库相关的操作,如连接、查询、执行SQL语句、获取结果集等,这样可以提高代码的可读性...

    php可用mysql,mssql,pg数据库操作类

    这个压缩包提供的"php可用mysql,mssql,pg数据库操作类"旨在提供一个通用的解决方案,允许开发者轻松地在MySQL、Microsoft SQL Server (MSSQL) 和 PostgreSQL (PGSQL) 之间切换,而无需对代码进行大幅度修改。...

    简单的MSSQL数据库备份恢复类

    本篇将详细介绍一个简单的MSSQL数据库备份恢复类的实现原理和相关知识点。 首先,我们来看“备份”这一环节。在MSSQL中,数据库备份是为了防止数据丢失或灾难恢复而进行的数据复制过程。备份可以分为完整备份、差异...

    c# 操作MSSQL数据库通用类

    `SystemDB`类是一个封装了针对MSSQL数据库进行基本操作的通用类。此类提供了一系列方法,用于执行SQL语句、获取数据集、执行读取器、执行命令并返回影响行数、执行无返回值的命令以及执行存储过程命令。 #### 连接...

    c#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)

    在现代软件开发中,数据持久化是至关重要的一个环节,而数据库操作作为数据持久化的基础,其效率和可维护性直接影响到整个应用程序的性能和稳定性。本文将深入探讨一个在C#.NET环境中设计的通用数据库访问封装类,该...

    一个ASP数据库操作类 代码下载.rar

    这个"ASP数据库操作类 DbCtrl"是一个专为ASP设计的数据库管理工具,旨在简化和加速数据库交互过程。在ASP中,直接进行数据库操作可能会涉及大量的SQL语句和连接处理,而使用DbCtrl类可以有效地封装这些细节,提高...

    一个php+mssql 数据库连接类库

    通过封装数据库操作,它可以使项目更加模块化,使得数据库访问的逻辑更加清晰。同时,良好的错误处理机制可以增强系统的健壮性,避免因数据库问题导致的应用程序崩溃。 总的来说,这个压缩包提供的资源对于需要与...

    ADO操作数据库(MySql/Access/Oracle/MSSql)强大封装类

    以下是一些关于如何使用这个封装类进行数据库操作的知识点: 1. **连接字符串**:每个数据库都有自己的连接字符串格式,封装类会隐藏这些细节,提供一个通用的接口。例如,对于Access,连接字符串可能包含数据库...

    PHP封装的MSSql操作类完整实例

    整个操作类都是为了使开发者能够更容易地管理与MSSQL数据库的交互,通过封装好的类和方法,可以更有效地避免直接使用mssql扩展函数可能导致的错误和安全问题,同时使得代码更加易于维护和理解。对于有需要操作MSSQL...

    php的mssql数据库连接类实例

    【PHP MSSQL数据库连接类...通过封装数据库操作,类使得代码更加模块化,降低了维护成本,并提高了代码复用性。理解并掌握这类库的使用,对于PHP开发者来说是至关重要的,特别是在需要与MSSQL数据库进行交互的项目中。

    .net操作mssql数据库,不写sql语句版

    通常,我们会有一个独立的`DAL(Data Access Layer)`,它封装了所有的数据库操作,这样业务逻辑层和UI层就不需要关心具体的数据库访问细节。`DataOperate`和`DataInfo`类可能是`DAL`的一部分,提供了一组接口供上层...

    C# SQL Server数据库操作DLL

    开发者可以将其引用到自己的C#项目中,无需了解底层实现,只需调用相应的接口即可执行数据库操作。 1. **数据库连接**:DLL通常会提供一个类,如`DBConnection`,用于管理到SQL Server数据库的连接。这个类可能包含...

    C# MSSQL数据库.zip

    在实际项目中,为了提高代码的可维护性和重用性,通常会将数据库操作封装到专门的DAL(数据访问层)或者Repository中。这样,业务逻辑层只需调用这些接口,而无需关心底层数据库的细节。 此外,对于大量数据的操作...

    NewClass Access or MsSql通用数据库读取类 v1.0-ASP源码.zip

    2. **数据库访问**:源码中的“NewClass”可能是一个数据库访问类,封装了对Access和MsSql数据库的操作接口,包括连接、查询、插入、更新和删除等操作。这使得开发者可以无需关心底层数据库的具体实现,提高代码的...

    php操作数据库类库,包括MySQL、MSSQL、Oracle、SQLite

    在实际项目中,可以进一步封装具体数据库操作的细节,以提供更友好的API给其他开发人员使用。例如,可以创建抽象方法,然后在各个数据库特定的子类中实现这些方法,以达到更高的代码复用和解耦。 总之,这个压缩包...

    vc.net_ADO_MSSQL.RAR_SQL 封装类_SQL VC 学生_VC.NET 数据库_c++ ado访问类

    在"标签"中,"sql__封装类"强调了数据库操作的封装性,这是软件设计的一个关键原则,它可以提高代码的可重用性和可维护性。"sql_vc_学生"表示这个系统专注于处理学生信息,可能是为了实现学生管理系统。"vc.net_...

    php实现可用于mysql,mssql,pg数据库操作类

    ### 数据库操作类的构成和功能 #### 连接数据库 1. **Open(打开数据库连接)** - 此函数用于建立到数据库服务器的连接。它接收数据库类型(dbType)和连接类型(connectType)作为参数,支持常见的连接方式以及...

    c#数据库sqlserver连接公共类的实现

    当完成数据库操作后,应该及时关闭连接以释放资源。可以使用`Close()`方法或`Dispose()`方法来关闭连接。 ```csharp public void Close() { if (connection.State == ConnectionState.Open) { connection....

    .net C# 数据库访问类

    总结来说,".NET C# 数据库访问类"是C#开发中用于简化数据库操作的工具,它们封装了与数据库交互的复杂性,提供统一的接口。DAR.DataAccess这个库很可能是一个多数据库支持的解决方案,能够帮助开发者更高效地管理...

Global site tag (gtag.js) - Google Analytics