`
pcajax
  • 浏览: 2196308 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# 数据库访问通用类 (ADO.NET)

阅读更多

SqlDbHelper.cs

001 using System;
002 using System.Collections.Generic;
003 using System.Text;
004 using System.Data;
005 using System.Data.SqlClient;
006 using System.Configuration;
007   
008 namespace ADODoNETDemo
009 {
010     /// <summary>
011     /// 针对SQL Server数据库操作的通用类
012     /// 作者:周公
013     /// 日期:2009-01-08
014     /// Version:1.0
015     /// </summary>
016     public class SqlDbHelper
017     {
018         private string connectionString;
019         /// <summary>
020         /// 设置数据库连接字符串
021         /// </summary>
022         public string ConnectionString
023         {
024             set { connectionString = value; }
025         }
026         /// <summary>
027         /// 构造函数
028         /// </summary>
029         public SqlDbHelper()
030             : this(ConfigurationManager.ConnectionStrings["Conn"].ConnectionString)
031         {
032   
033         }
034         /// <summary>
035         /// 构造函数
036         /// </summary>
037         /// <param name="connectionString">数据库连接字符串</param>
038         public SqlDbHelper(string connectionString)
039         {
040             this.connectionString = connectionString;
041         }
042         /// <summary>
043         /// 执行一个查询,并返回结果集
044         /// </summary>
045         /// <param name="sql">要执行的查询SQL文本命令</param>
046         /// <returns>返回查询结果集</returns>
047         public DataTable ExecuteDataTable(string sql)
048         {
049             return ExecuteDataTable(sql, CommandType.Text, null);
050         }
051         /// <summary>
052         /// 执行一个查询,并返回查询结果
053         /// </summary>
054         /// <param name="sql">要执行的SQL语句</param>
055         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
056         /// <returns>返回查询结果集</returns>
057         public DataTable ExecuteDataTable(string sql, CommandType commandType)
058         {
059             return ExecuteDataTable(sql, commandType, null);
060         }
061         /// <summary>
062         /// 执行一个查询,并返回查询结果
063         /// </summary>
064         /// <param name="sql">要执行的SQL语句</param>
065         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
066         /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
067         /// <returns></returns>
068         public DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters)
069         {
070             DataTable data = new DataTable();//实例化DataTable,用于装载查询结果集
071             using (SqlConnection connection = new SqlConnection(connectionString))
072             {
073                 using (SqlCommand command = new SqlCommand(sql, connection))
074                 {
075                     command.CommandType = commandType;//设置command的CommandType为指定的CommandType
076                     //如果同时传入了参数,则添加这些参数
077                     if (parameters != null)
078                     {
079                         foreach (SqlParameter parameter in parameters)
080                         {
081                             command.Parameters.Add(parameter);
082                         }
083                     }
084                     //通过包含查询SQL的SqlCommand实例来实例化SqlDataAdapter
085                     SqlDataAdapter adapter = new SqlDataAdapter(command);
086   
087                     adapter.Fill(data);//填充DataTable
088                 }
089             }
090             return data;
091         }
092         /// <summary>
093         /// 
094         /// </summary>
095         /// <param name="sql">要执行的查询SQL文本命令</param>
096         /// <returns></returns>
097         public SqlDataReader ExecuteReader(string sql)
098         {
099             return ExecuteReader(sql, CommandType.Text, null);
100         }
101         /// <summary>
102         /// 
103         /// </summary>
104         /// <param name="sql">要执行的SQL语句</param>
105         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
106         /// <returns></returns>
107         public SqlDataReader ExecuteReader(string sql, CommandType commandType)
108         {
109             return ExecuteReader(sql, commandType, null);
110         }
111         /// <summary>
112         /// 
113         /// </summary>
114         /// <param name="sql">要执行的SQL语句</param>
115         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
116         /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
117         /// <returns></returns>
118         public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
119         {
120             SqlConnection connection = new SqlConnection(connectionString);
121             SqlCommand command = new SqlCommand(sql, connection);
122             //如果同时传入了参数,则添加这些参数
123             if (parameters != null)
124             {
125                 foreach (SqlParameter parameter in parameters)
126                 {
127                     command.Parameters.Add(parameter);
128                 }
129             }
130             connection.Open();
131             //CommandBehavior.CloseConnection参数指示关闭Reader对象时关闭与其关联的Connection对象
132             return command.ExecuteReader(CommandBehavior.CloseConnection);
133         }
134         /// <summary>
135         /// 
136         /// </summary>
137         /// <param name="sql">要执行的查询SQL文本命令</param>
138         /// <returns></returns>
139         public Object ExecuteScalar(string sql)
140         {
141             return ExecuteScalar(sql, CommandType.Text, null);
142         }
143         /// <summary>
144         /// 
145         /// </summary>
146         /// <param name="sql">要执行的SQL语句</param>
147         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
148         /// <returns></returns>
149         public Object ExecuteScalar(string sql, CommandType commandType)
150         {
151             return ExecuteScalar(sql, commandType, null);
152         }
153         /// <summary>
154         /// 
155         /// </summary>
156         /// <param name="sql">要执行的SQL语句</param>
157         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
158         /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
159         /// <returns></returns>
160         public Object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters)
161         {
162             object result = null;
163             using (SqlConnection connection = new SqlConnection(connectionString))
164             {
165                 using (SqlCommand command = new SqlCommand(sql, connection))
166                 {
167                     command.CommandType = commandType;//设置command的CommandType为指定的CommandType
168                     //如果同时传入了参数,则添加这些参数
169                     if (parameters != null)
170                     {
171                         foreach (SqlParameter parameter in parameters)
172                         {
173                             command.Parameters.Add(parameter);
174                         }
175                     }
176                     connection.Open();//打开数据库连接
177                     result = command.ExecuteScalar();
178                 }
179             }
180             return result;//返回查询结果的第一行第一列,忽略其它行和列
181         }
182         /// <summary>
183         /// 对数据库执行增删改操作
184         /// </summary>
185         /// <param name="sql">要执行的查询SQL文本命令</param>
186         /// <returns></returns>
187         public int ExecuteNonQuery(string sql)
188         {
189             return ExecuteNonQuery(sql, CommandType.Text, null);
190         }
191         /// <summary>
192         /// 对数据库执行增删改操作
193         /// </summary>
194         /// <param name="sql">要执行的SQL语句</param>
195         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
196         /// <returns></returns>
197         public int ExecuteNonQuery(string sql, CommandType commandType)
198         {
199             return ExecuteNonQuery(sql, commandType, null);
200         }
201         /// <summary>
202         /// 对数据库执行增删改操作
203         /// </summary>
204         /// <param name="sql">要执行的SQL语句</param>
205         /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
206         /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
207         /// <returns></returns>
208         public int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
209         {
210             int count = 0;
211             using (SqlConnection connection = new SqlConnection(connectionString))
212             {
213                 using (SqlCommand command = new SqlCommand(sql, connection))
214                 {
215                     command.CommandType = commandType;//设置command的CommandType为指定的CommandType
216                     //如果同时传入了参数,则添加这些参数
217                     if (parameters != null)
218                     {
219                         foreach (SqlParameter parameter in parameters)
220                         {
221                             command.Parameters.Add(parameter);
222                         }
223                     }
224                     </
分享到:
评论

相关推荐

    数据库开发个人总结(ADO.NET小结)

    ADO.NET是.NET框架中用于访问数据库的核心组件,它提供了与各种数据库系统交互的能力。在本文中,我们将深入探讨ADO.NET的关键概念,特别是通过SqlConnection和SqlCommand对象来连接和操作SQL Server数据库。 首先...

    C#连接数据库,是ADO.NET连库的通用

    C#提供了多种方式来连接和操作数据库,其中最常用且高效的一种就是通过ADO.NET(ActiveX Data Objects .NET)框架。本篇文章将深入探讨如何使用C#和ADO.NET进行SQL Server数据库的连接,并提供一个基础的示例。 ...

    C# - Wrox - Professional ADO.NET Programing

    本书不仅涵盖了ADO.NET的基本概念、体系结构,还涉及了具体的编程实践和技术细节,对于想要提高数据库访问能力的开发者来说是一本非常有价值的参考书。 #### 详细介绍 ##### 1. 引言 - **ADO.NET简介**:解释了ADO...

    .NET C# ADO.NET 2.0 公共数据层类库

    总的来说,.NET C# ADO.NET 2.0 公共数据层类库是一种高效的方式,可以帮助开发人员在C#项目中快速构建稳定的数据访问层,降低了与数据库交互的复杂性,提高了代码的可维护性和重用性。通过理解和使用这样的类库,...

    ADO.net通用类库实现与实例

    总结来说,这个"ADO.NET通用类库实现与实例"提供了全面的数据库操作功能,包括基本的数据操作、事务处理策略以及数据库管理,是C#开发者进行数据库编程的有力工具。通过学习和使用这个类库,可以更好地理解和掌握ADO...

    ADO.NET概述

    ADO.NET不仅仅局限于访问关系型数据库,还扩展了对XML的支持,这使得它能够更好地适应现代应用程序的需求。 #### 二、ADO.NET的特点 1. **数据访问方式**:ADO.NET采用断开式数据访问模式,这意味着数据可以从数据...

    一个用于C#数据库连接的一个通用类,好东西哦!

    综上所述,这个通用的C#数据库连接类应能适应多种数据库,提供统一的API,方便开发者进行数据库操作。同时,要确保遵循最佳实践,如使用参数化查询、正确管理连接和事务,以及利用连接池优化性能。通过这样的设计,...

    ADO.Net详解,Net数据库操作,Vb.Net数据库编程

    **ADO.NET**(ActiveX Data Objects .NET)是Microsoft为.NET框架提供的数据访问技术,它允许开发人员使用.NET语言如C#、VB.NET等与各种数据库进行交互。ADO.NET 2.0在原有的基础上进行了大量的改进和增强,引入了...

    visual c#2005 数据库开发ADO.NET 应用

    ADO.NET 通用开发.使用ADO.NET 控件调用SQLSERVER 2000 数据库.

    ASP.NET通用数据库访问组件

    在ASP.NET中,数据库访问通常涉及ADO.NET(ActiveX Data Objects .NET),这是一个用于访问数据库的组件集。然而,直接使用ADO.NET可能需要编写大量的重复代码,尤其是在处理多种数据库时。这就是为什么开发通用...

    ADO.NET高级编程.pdf

    - **ADO.NET简介**:ADO.NET(ActiveX Data Objects .NET)是Microsoft推出的一种数据访问技术,它基于.NET框架,提供了一种用于访问数据库和其他数据源的高效且灵活的方式。与传统的ADO相比,ADO.NET更侧重于支持...

    C#采用ADO.NET读取Excel 0307 数据不完整的问题

    ADO.NET是Microsoft提供的一套用于访问数据库的应用程序接口,它包括两个核心组件:`System.Data.SqlClient` 和 `System.Data.OleDb`。当使用ADO.NET读取Excel文件时,主要依赖于`System.Data.OleDb`命名空间下的`...

    c#数据库访问通用类

    访问数据库的通用类,从连接字符串设置到数据库的查询、增加、删除和修改等

    ado.net通用分页代码

    ADO.NET是一种用于访问数据库的微软技术,它是.NET框架的一部分,为开发者提供了与各种数据库交互的能力。在处理大量数据时,分页是必不可少的功能,它能够有效地管理用户界面,避免一次性加载过多数据导致性能下降...

    C#ADO.NET技术三层模式架构完整学生管理系统基础版本

    在C# ADO.NET中,可以使用`SqlConnection`类连接数据库,`SqlCommand`类执行SQL命令,`SqlDataAdapter`配合`DataSet`或`DataTable`进行数据填充和更新。此层应尽量减少对业务逻辑的依赖,只关注数据库操作。 2. **...

    Sybase ASE ado.net2.0 驱动包AdoNet2.AseClient

    AdoNet2.AseClient是专门为此数据库系统设计的ADO.NET驱动,它允许开发人员在.NET环境中通过C#、VB.NET等语言与Sybase ASE进行数据交互。 Sybase ADO.NET 2.0驱动包AdoNet2.AseClient提供了一套完整的.NET数据提供...

    人力资源管理系统(使用c#,SQL和ADO.NET)

    ADO.NET是.NET框架中的数据访问组件,它提供了与各种数据库交互的能力。在本系统中,ADO.NET用于连接C#代码和SQL数据库,实现了数据的增删改查操作。例如,通过ADO.NET的Command对象执行SQL命令,DataAdapter对象...

    通用.NET数据库访问类

    这个"通用.NET数据库访问类"是一个设计用于简化数据库操作的C#代码库。它遵循面向接口编程的原则,这使得代码更具有可扩展性和可维护性。下面将详细介绍这个数据库访问类的关键知识点。 首先,接口(Interface)在...

    C#中文文档ado.net

    ### C#中文文档ado.net知识点解析 #### 一、ADO.NET设计目标 ADO.NET的设计旨在满足现代应用程序开发的需求,特别是那些基于Web的应用程序。它的设计目标主要包括以下几个方面: 1. **断开式数据结构**:在传统的...

Global site tag (gtag.js) - Google Analytics