`
hailang43
  • 浏览: 25959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个C#访问数据库的帮助类

阅读更多
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;

namespace SQLHelperClass
{

    public abstract class SqlHelper
    {
        public static readonly string ConnectionStringMSSQL = ConfigurationManager.AppSettings["dbPath"].ToString();
        private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
        }

        public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {

            SqlCommand cmd = new SqlCommand();

            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }

        public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }


        public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            SqlConnection conn = new SqlConnection(connectionString);
            try
            {
                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                cmd.Parameters.Clear();
                return rdr;
            }
            catch
            {
                conn.Close();
                throw;
            }
        }
        public static DataSet ExecuteDataSet(string connectionString, string cmdText)
        {
            DataSet __ds = new DataSet();
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter(cmdText, connectionString);
                sda.Fill(__ds);
            }
            catch
            {
                throw;
            }
            return __ds;
        }
        public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            DataSet __ds = new DataSet();
            SqlCommand cmd = new SqlCommand();
            SqlConnection conn = new SqlConnection(connectionString);
            SqlDataAdapter sda = new SqlDataAdapter();
            try
            {
                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                sda.SelectCommand = cmd;
                sda.Fill(__ds);
                cmd.Parameters.Clear();
                return __ds;
            }
            catch
            {
                conn.Close();
                throw;
            }
        }
        public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }
        }

        public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;
        }

        public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
        {
            parmCache[cacheKey] = commandParameters;
        }

        public static SqlParameter[] GetCachedParameters(string cacheKey)
        {
            SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
            if (cachedParms == null)
                return null;
            SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];

            for (int i = 0, j = cachedParms.Length; i < j; i++)
                clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
            return clonedParms;
        }

        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = cmdType;
            if (cmdParms != null)
            {
                foreach (SqlParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }


    }
}
分享到:
评论

相关推荐

    C#SqlServer数据库链接帮助类

    C#SqlServer数据库链接帮助类

    C#通用数据库帮助类(MyDbHelper.cs)无需修改直接使用

    首先,`MyDbHelper.cs`是一个C#源代码文件,通常它会包含一个静态类或实例类,用于封装数据库操作的通用方法。这类帮助类的主要目的是简化数据库访问,减少重复代码,提高代码的可维护性和复用性。在`MyDbHelper`中...

    .net C# 数据库访问类

    在.NET开发环境中,C#是一种常用的编程语言,用于构建各种...DAR.DataAccess这个库很可能是一个多数据库支持的解决方案,能够帮助开发者更高效地管理数据库连接、执行SQL命令和处理事务,适用于各种基于.NET的项目。

    C#访问kingbasees数据库的DEMO,实现C#对国产金仓数据库的访问

    ADO.NET是一种用于访问数据库的组件,它提供了连接、命令、数据适配器和数据集等对象,使得开发者能够方便地与各种数据库系统进行交互。在C#中,我们通常使用`SqlConnection`类来建立与数据库的连接,使用`...

    c#访问数据库开发示例

    在C#编程中,访问数据库是...通过深入研究这个"C#访问数据库开发示例",初学者能够学习到如何在C#环境中设置数据库连接,执行SQL命令,以及处理查询结果。同时,理解并掌握这些概念将有助于进一步提升数据库开发能力。

    C#版Oracle数据库通用操作类

    本文将深入探讨一个用于简化 Oracle 数据库操作的 C# 类——`ConnForOracle`。该类提供了一系列方法,包括基础连接、执行 SQL 语句、数据集分页处理等。 #### 一、概述 `ConnForOracle` 类主要实现了对 Oracle ...

    C#数据库操作类AccessHelper实例

    连接字符串是访问数据库的关键,它包含了数据库提供商(Provider=Microsoft.Jet.OLEDB.4.0)、数据源(Data Source=ahwildlife.mdb)以及身份验证信息(Jet OLEDB:Database Password=sa;)。这里的例子使用的是Jet ...

    C#操作Oracle帮助类已经封装 本地无需安装oracle 内有说明文档

    本资源提供了一个方便的C#操作Oracle数据库的解决方案,名为"C#操作Oracle帮助类已经封装",其特点在于本地无需安装Oracle客户端,大大简化了开发环境的配置。 首先,让我们详细了解一下这个"OracleHelper"类。在C#...

    数据库操作通用类(C#)

    总之,C#中的数据库操作通用类是一个强大的工具,可以帮助开发者以统一的方式处理多种数据库,减少重复代码,提高代码质量和可维护性。通过理解并运用这些概念,可以更好地构建高效、安全的数据库应用。

    数据库公共帮助类

    "数据库公共帮助类"是一个通用的C#类库,旨在简化开发者与SQL数据库的连接和操作过程。这个帮助类提供了封装好的方法,使得在实际项目中进行数据库操作时无需重复编写基础代码,提高了开发效率。 在描述中提到,该...

    C#数据库表转实体类

    实体类是面向对象编程中的一个概念,它代表了数据库中的一个表格或视图,每个属性对应数据库表中的一个字段。实体类使得我们可以在代码中处理对象,而不是直接操作SQL语句,提高了代码的可读性和可维护性。 1. **...

    一个C# SQLHelper 数据库操作类

    SQLHelper是一个经典的C#数据库操作类,它为开发者提供了一种方便、简洁的方式来执行SQL语句,大大简化了数据库操作的过程。这个类通常包含了连接数据库、执行SQL命令、处理结果集等功能,适用于多种数据库系统,如...

    c# 数据库连接类

    首先,我们需要理解C#中的ADO.NET框架,它是.NET Framework中用于访问数据库的主要组件。ADO.NET包含一组类库,例如`System.Data.SqlClient`(针对SQL Server)、`System.Data.OleDb`(用于多种数据库,包括Access)...

    C# 数据库辅助类(2个)

    这个文件很可能实现了一个SQL帮助器类,它封装了对ADO.NET(.NET框架中的数据库访问组件)的操作,比如执行SQL语句、存储过程等。以下是一些可能包含的功能: - **连接管理**:包括打开、关闭数据库连接,以及...

    C#2008数据库入门经典

    《C# 2008数据库入门经典(第4版)》着重介绍了使用C# 2008作为开发工具,与最新发布的Visual Studio 2008及.NET Framework 3.5一起访问数据库。《C# 2008数据库入门经典(第4版)》介绍了使用SQL Server 2005进行数据库...

    c#的Oracle数据库访问类

    很不错的底层访问类,每段函数的注释清楚,使用起来很方便!

    使用C#开发数据库应用系统 数据库 北大青鸟参考资料

    总的来说,使用C#开发数据库应用系统涉及多个方面,包括数据库连接、数据操作、事务处理、错误处理、ORM工具使用以及设计模式和架构的理解。掌握这些知识点,对于成为一名合格的C#数据库开发者至关重要。在学习过程...

    C#自动生成数据库以及实体类代码和操作插件

    总结来说,“C#自动生成数据库以及实体类代码和操作插件”是一个强大的开发工具,它能够帮助开发者快速搭建与数据库交互的代码结构,提高开发效率,同时降低出错风险。对于C#开发者而言,理解和掌握这类工具的使用,...

    C#各种数据库访问类

    这里提到的`C#各种数据库访问类`包括`OledbHelper.cs`、`OracleHelperForC#.cs`和`SQLHelper.cs`,它们分别是为了方便开发者操作不同类型的数据库而设计的帮助类。 1. **OleDbHelper.cs** `OleDbHelper`类通常用于...

    C#访问SQL数据库的例子

    总的来说,掌握C#访问SQL数据库的基本原理和操作,对于开发高效、稳定的数据库应用程序至关重要。这个"VS2008 C#语言访问sql2005数据库的详细例子源码"提供了实际动手实践的机会,帮助开发者更好地理解和运用这些...

Global site tag (gtag.js) - Google Analytics