- 浏览: 2196308 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
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是.NET框架中用于访问数据库的核心组件,它提供了与各种数据库系统交互的能力。在本文中,我们将深入探讨ADO.NET的关键概念,特别是通过SqlConnection和SqlCommand对象来连接和操作SQL Server数据库。 首先...
C#提供了多种方式来连接和操作数据库,其中最常用且高效的一种就是通过ADO.NET(ActiveX Data Objects .NET)框架。本篇文章将深入探讨如何使用C#和ADO.NET进行SQL Server数据库的连接,并提供一个基础的示例。 ...
本书不仅涵盖了ADO.NET的基本概念、体系结构,还涉及了具体的编程实践和技术细节,对于想要提高数据库访问能力的开发者来说是一本非常有价值的参考书。 #### 详细介绍 ##### 1. 引言 - **ADO.NET简介**:解释了ADO...
总的来说,.NET C# ADO.NET 2.0 公共数据层类库是一种高效的方式,可以帮助开发人员在C#项目中快速构建稳定的数据访问层,降低了与数据库交互的复杂性,提高了代码的可维护性和重用性。通过理解和使用这样的类库,...
总结来说,这个"ADO.NET通用类库实现与实例"提供了全面的数据库操作功能,包括基本的数据操作、事务处理策略以及数据库管理,是C#开发者进行数据库编程的有力工具。通过学习和使用这个类库,可以更好地理解和掌握ADO...
ADO.NET不仅仅局限于访问关系型数据库,还扩展了对XML的支持,这使得它能够更好地适应现代应用程序的需求。 #### 二、ADO.NET的特点 1. **数据访问方式**:ADO.NET采用断开式数据访问模式,这意味着数据可以从数据...
综上所述,这个通用的C#数据库连接类应能适应多种数据库,提供统一的API,方便开发者进行数据库操作。同时,要确保遵循最佳实践,如使用参数化查询、正确管理连接和事务,以及利用连接池优化性能。通过这样的设计,...
**ADO.NET**(ActiveX Data Objects .NET)是Microsoft为.NET框架提供的数据访问技术,它允许开发人员使用.NET语言如C#、VB.NET等与各种数据库进行交互。ADO.NET 2.0在原有的基础上进行了大量的改进和增强,引入了...
ADO.NET 通用开发.使用ADO.NET 控件调用SQLSERVER 2000 数据库.
在ASP.NET中,数据库访问通常涉及ADO.NET(ActiveX Data Objects .NET),这是一个用于访问数据库的组件集。然而,直接使用ADO.NET可能需要编写大量的重复代码,尤其是在处理多种数据库时。这就是为什么开发通用...
- **ADO.NET简介**:ADO.NET(ActiveX Data Objects .NET)是Microsoft推出的一种数据访问技术,它基于.NET框架,提供了一种用于访问数据库和其他数据源的高效且灵活的方式。与传统的ADO相比,ADO.NET更侧重于支持...
ADO.NET是Microsoft提供的一套用于访问数据库的应用程序接口,它包括两个核心组件:`System.Data.SqlClient` 和 `System.Data.OleDb`。当使用ADO.NET读取Excel文件时,主要依赖于`System.Data.OleDb`命名空间下的`...
访问数据库的通用类,从连接字符串设置到数据库的查询、增加、删除和修改等
ADO.NET是一种用于访问数据库的微软技术,它是.NET框架的一部分,为开发者提供了与各种数据库交互的能力。在处理大量数据时,分页是必不可少的功能,它能够有效地管理用户界面,避免一次性加载过多数据导致性能下降...
在C# ADO.NET中,可以使用`SqlConnection`类连接数据库,`SqlCommand`类执行SQL命令,`SqlDataAdapter`配合`DataSet`或`DataTable`进行数据填充和更新。此层应尽量减少对业务逻辑的依赖,只关注数据库操作。 2. **...
AdoNet2.AseClient是专门为此数据库系统设计的ADO.NET驱动,它允许开发人员在.NET环境中通过C#、VB.NET等语言与Sybase ASE进行数据交互。 Sybase ADO.NET 2.0驱动包AdoNet2.AseClient提供了一套完整的.NET数据提供...
ADO.NET是.NET框架中的数据访问组件,它提供了与各种数据库交互的能力。在本系统中,ADO.NET用于连接C#代码和SQL数据库,实现了数据的增删改查操作。例如,通过ADO.NET的Command对象执行SQL命令,DataAdapter对象...
这个"通用.NET数据库访问类"是一个设计用于简化数据库操作的C#代码库。它遵循面向接口编程的原则,这使得代码更具有可扩展性和可维护性。下面将详细介绍这个数据库访问类的关键知识点。 首先,接口(Interface)在...
### C#中文文档ado.net知识点解析 #### 一、ADO.NET设计目标 ADO.NET的设计旨在满足现代应用程序开发的需求,特别是那些基于Web的应用程序。它的设计目标主要包括以下几个方面: 1. **断开式数据结构**:在传统的...