`
流星剑
  • 浏览: 94620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

封装的sql数据访问助手类

    博客分类:
  • .net
阅读更多
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Data.SqlClient;

namespace DAL
{
    public class sqlHelper
    {
        private SqlConnection conn = null;
        private SqlCommand cmd = null;
        private DataTable dt = null;

        public sqlHelper()
        {
            string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
            conn = new SqlConnection(connStr);
        }
        /// <summary>连接对象
        /// 
        /// </summary>
        /// <returns></returns>
        public SqlConnection getConn()
        {

            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            return conn;
        }
        /// <summary>执行返回一行的增删改sql语句或存储过程
        /// 
        /// </summary>
        /// <param name="cmdText">sql语句或存储过程</param>     
        /// <param name="paras">参数变量</param>
        /// <param name="ct">命令类型</param>
        /// <returns></returns>
        public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
        {
            int i;
            try
            {
                cmd = new SqlCommand(cmdText, getConn());
                cmd.Parameters.AddRange(paras);
                cmd.CommandType = ct;
                i = cmd.ExecuteNonQuery();

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return i;
        }
        /// <summary> 执行返回结果集的sql语句或存储过程的查询
        ///
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="paras"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public DataTable ExecuteReader(string cmdText, SqlParameter[] paras, CommandType ct)
        {
            dt = new DataTable();
            cmd = new SqlCommand(cmdText, getConn());
            cmd.Parameters.AddRange(paras);
            cmd.CommandType = ct;
            using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }
        /// <summary>执行返回结果集中第一行第一列的查询
        /// 
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public string ExecuteScalar(string sql)
        {
            using (cmd = new SqlCommand(sql, getConn()))
            {
                string res = cmd.ExecuteScalar().ToString();
                if (res == "" && res == null)
                {
                    return "";
                }
                else
                {
                    return res;
                }
            }
            //以下这种方式也可以
            //try
            //{
            //    cmd = new SqlCommand(sql, getConn());
            //    object obj = cmd.ExecuteScalar();
            //    if (obj != null)
            //    {
            //        return obj.ToString();
            //    }
            //    return "";
            //}
            //catch (Exception ex)
            //{
            //    throw ex;
            //}
            //finally
            //{
            //    if (conn.State == ConnectionState.Open)
            //    {
            //        conn.Close();
            //    }
            //}
        }
    }
}

 

分享到:
评论

相关推荐

    封装的SQL数据库访问类

    ### 封装的SQL数据库访问类 在现代软件开发中,特别是Web应用开发领域,对数据库的操作是非常核心的一部分。为了简化这些操作并提高代码的可维护性和可读性,开发者通常会采用各种技术来实现数据库访问层(Data ...

    sql+sqlserver 数据库访问类封装例子

    本主题将深入探讨“sql+sqlserver 数据库访问类封装例子”,这是一个利用面向对象编程来简化数据库操作的方法。我们将讨论如何通过配置文件动态连接到SQL Server数据库,并了解此类封装的优势。 首先,`sql+sql...

    C# 数据访问层封装

    本示例"数据库管理,权限精确到库"将展示如何在C#中进行数据访问层的封装,实现对数据库的精细控制。 首先,我们需要理解数据访问层的核心职责。它应该提供一套抽象接口,使得业务逻辑层(BLL)能够以统一、无侵入...

    C++使用ADO封装连接SQLServer类

    本篇文章将聚焦于如何使用ActiveX Data Objects(ADO)在C++中封装一个连接到SQL Server的类。ADO是微软提供的一种用于访问数据库的接口,它使得C++程序员能够轻松地与多种数据库进行通信,包括SQL Server。 首先,...

    实用数据库访问类,封装常见的数据库访问类助手

    本资源"实用数据库访问类,封装常见的数据库访问类助手"提供了一个方便的工具,可以简化数据库操作,提高代码的可维护性和复用性。 首先,我们要理解什么是数据库访问类。数据库访问类是面向对象编程中的一种设计...

    封装sql类方法

    本文将详细讲解如何在C#中封装SQL Server 2005的类方法,以便于实现对数据库的管理和操作。 首先,我们需要了解C#中的ADO.NET框架,它是.NET Framework提供的一套用于访问数据库的API。ADO.NET包含四个主要组件:...

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

    本文将深入探讨一个在C#.NET环境中设计的通用数据库访问封装类,该类支持Microsoft Access、SQL Server以及Oracle三种主流数据库系统,旨在提供一种统一的、高效的数据访问方式。 #### 概述 这个封装类,即`...

    sql数据库助手类

    "Sql数据库助手类"通常是指一个封装了常见SQL操作的C#类库,用于简化开发人员与数据库的交互过程。这类助手类通常包含了连接数据库、执行SQL语句、处理结果集等功能,以提高开发效率并降低错误率。 `SqlHelper.cs`...

    2009 年C#史上封装最完美的数据访问类

    4. **错误处理和异常处理**:良好的数据访问类会处理可能出现的错误和异常,通过try-catch块捕获并处理SQL异常,同时可能提供了自定义的异常类,以便更方便地追踪和修复问题。 5. **ORM集成**:2009年时,Entity ...

    封装VC访问SQL(文件中包括访问SQL的dll和测试程序)

    "封装VC访问SQL"是一个项目,旨在提供一个方便、高效的接口,用于VC++应用程序与SQL数据库进行通信。下面我们将详细探讨这个主题。 首先,VC++是一种强大的C++集成开发环境,由微软公司开发,广泛应用于Windows平台...

    动态封装SQL语句,配置文件的调用与封装

    在IT行业中,数据库操作是应用开发中的重要环节,而动态封装SQL语句和配置文件的调用与封装是提升程序灵活性、可维护性的重要技术手段。...在实际开发中,结合JDBC和其他相关框架,可以实现更高效、更安全的数据访问。

    C#封装很完美的数据访问类

    一个“封装很完美的数据访问类”应该是高效、灵活、可复用且易于维护的。以下将详细阐述C#中创建这样一个数据访问类的关键知识点: 1. **设计模式**: - **工厂模式**:用于创建数据库连接对象,提供一个统一的...

    一个封装较好的数据访问及可扩展架构

    在数据访问架构中,封装通常体现在数据访问对象(DAO)的设计上,DAO作为数据存取的接口,隐藏了数据库连接、SQL查询等具体实现,只提供增删查改等基本操作。 可扩展性则是架构设计的另一个关键要素。一个可扩展的...

    C#WPF sqlserver 数据库 封装类

    在这个场景中,"C# WPF sqlserver 数据库 封装类"是一个实现了与SQL Server数据库交互的C#类库,方便开发者快速地在WPF应用中进行数据操作。下面将详细介绍这个封装类以及如何使用它。 首先,这个封装类通常会包含...

    用C#实现的SqlServer封装类

    在C#中封装SQL Server数据库访问逻辑,通常涉及创建一个或多个类,这些类可以执行常见的数据库操作,如连接、查询、插入、更新和删除数据。 首先,这个封装类通常会包含一个或多个构造函数,用于初始化数据库连接...

    很好用的数据库访问封装类

    这个"很好用的数据库访问封装类"是为C#编程语言设计的,旨在提供一个通用的解决方案,支持Access、SQL Server和Oracle等多种数据库系统。这种封装允许开发者通过统一的接口来处理不同类型的数据库,降低了代码的复杂...

    封装多种数据库通用访问类

    在这个框架下,我们可以创建一个通用的数据访问类,以处理诸如 ACCESS、Oracle 和 SQL Server 这样的不同数据库。每个数据库都有自己的特定连接字符串格式、命令执行方式以及结果集处理规则,但是通过封装,我们可以...

    ASP.NET封装的SQL数据库访问类

    ASP.NET 封装的 SQL 数据库访问类 ASP.NET SQL 数据库封装访问类代码是 ASP.NET Framework 中的一种数据库访问机制,通过封装 SQL 数据库访问类来实现对数据库的操作。本文将详细介绍该类的实现机制和相关知识点。...

    通用数据库访问类sql server 版本常用方法封装

    * Description: 本次常用代码封装为数据库通用访问类: * 包含以下方法: * 1.获取数据库连接字符串,创建数据库连接命令,判断数据字符数组 * 2.执行非查询ExecuteNonQuery返回受影响的行数,增加,修改,删除, *...

    数据库 sql与MFC的连接封装类 ADO

    ADO是一个数据访问接口,它允许程序员通过COM(Component Object Model)组件直接与各种数据源进行交互,包括ODBC(Open Database Connectivity)和OLE DB。ADO的核心优势在于其轻量级、高速度以及对多种数据库系统...

Global site tag (gtag.js) - Google Analytics