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数据库链接帮助类
首先,`MyDbHelper.cs`是一个C#源代码文件,通常它会包含一个静态类或实例类,用于封装数据库操作的通用方法。这类帮助类的主要目的是简化数据库访问,减少重复代码,提高代码的可维护性和复用性。在`MyDbHelper`中...
在.NET开发环境中,C#是一种常用的编程语言,用于构建各种...DAR.DataAccess这个库很可能是一个多数据库支持的解决方案,能够帮助开发者更高效地管理数据库连接、执行SQL命令和处理事务,适用于各种基于.NET的项目。
ADO.NET是一种用于访问数据库的组件,它提供了连接、命令、数据适配器和数据集等对象,使得开发者能够方便地与各种数据库系统进行交互。在C#中,我们通常使用`SqlConnection`类来建立与数据库的连接,使用`...
在C#编程中,访问数据库是...通过深入研究这个"C#访问数据库开发示例",初学者能够学习到如何在C#环境中设置数据库连接,执行SQL命令,以及处理查询结果。同时,理解并掌握这些概念将有助于进一步提升数据库开发能力。
本文将深入探讨一个用于简化 Oracle 数据库操作的 C# 类——`ConnForOracle`。该类提供了一系列方法,包括基础连接、执行 SQL 语句、数据集分页处理等。 #### 一、概述 `ConnForOracle` 类主要实现了对 Oracle ...
连接字符串是访问数据库的关键,它包含了数据库提供商(Provider=Microsoft.Jet.OLEDB.4.0)、数据源(Data Source=ahwildlife.mdb)以及身份验证信息(Jet OLEDB:Database Password=sa;)。这里的例子使用的是Jet ...
本资源提供了一个方便的C#操作Oracle数据库的解决方案,名为"C#操作Oracle帮助类已经封装",其特点在于本地无需安装Oracle客户端,大大简化了开发环境的配置。 首先,让我们详细了解一下这个"OracleHelper"类。在C#...
总之,C#中的数据库操作通用类是一个强大的工具,可以帮助开发者以统一的方式处理多种数据库,减少重复代码,提高代码质量和可维护性。通过理解并运用这些概念,可以更好地构建高效、安全的数据库应用。
"数据库公共帮助类"是一个通用的C#类库,旨在简化开发者与SQL数据库的连接和操作过程。这个帮助类提供了封装好的方法,使得在实际项目中进行数据库操作时无需重复编写基础代码,提高了开发效率。 在描述中提到,该...
实体类是面向对象编程中的一个概念,它代表了数据库中的一个表格或视图,每个属性对应数据库表中的一个字段。实体类使得我们可以在代码中处理对象,而不是直接操作SQL语句,提高了代码的可读性和可维护性。 1. **...
SQLHelper是一个经典的C#数据库操作类,它为开发者提供了一种方便、简洁的方式来执行SQL语句,大大简化了数据库操作的过程。这个类通常包含了连接数据库、执行SQL命令、处理结果集等功能,适用于多种数据库系统,如...
首先,我们需要理解C#中的ADO.NET框架,它是.NET Framework中用于访问数据库的主要组件。ADO.NET包含一组类库,例如`System.Data.SqlClient`(针对SQL Server)、`System.Data.OleDb`(用于多种数据库,包括Access)...
这个文件很可能实现了一个SQL帮助器类,它封装了对ADO.NET(.NET框架中的数据库访问组件)的操作,比如执行SQL语句、存储过程等。以下是一些可能包含的功能: - **连接管理**:包括打开、关闭数据库连接,以及...
《C# 2008数据库入门经典(第4版)》着重介绍了使用C# 2008作为开发工具,与最新发布的Visual Studio 2008及.NET Framework 3.5一起访问数据库。《C# 2008数据库入门经典(第4版)》介绍了使用SQL Server 2005进行数据库...
很不错的底层访问类,每段函数的注释清楚,使用起来很方便!
总的来说,使用C#开发数据库应用系统涉及多个方面,包括数据库连接、数据操作、事务处理、错误处理、ORM工具使用以及设计模式和架构的理解。掌握这些知识点,对于成为一名合格的C#数据库开发者至关重要。在学习过程...
总结来说,“C#自动生成数据库以及实体类代码和操作插件”是一个强大的开发工具,它能够帮助开发者快速搭建与数据库交互的代码结构,提高开发效率,同时降低出错风险。对于C#开发者而言,理解和掌握这类工具的使用,...
这里提到的`C#各种数据库访问类`包括`OledbHelper.cs`、`OracleHelperForC#.cs`和`SQLHelper.cs`,它们分别是为了方便开发者操作不同类型的数据库而设计的帮助类。 1. **OleDbHelper.cs** `OleDbHelper`类通常用于...
总的来说,掌握C#访问SQL数据库的基本原理和操作,对于开发高效、稳定的数据库应用程序至关重要。这个"VS2008 C#语言访问sql2005数据库的详细例子源码"提供了实际动手实践的机会,帮助开发者更好地理解和运用这些...