using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
/********************************
* 类名:DBHelper
* 功能描述:连接数据库
* ******************************/
namespace HotelManager.DAL
{
public static class DBHelper
{
#region private Members 从配置文件中读取数据库连接字符串
/// <summary>
/// 返回Connection对象
/// </summary>
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connString = ConfigurationManager.ConnectionStrings["HotelManagerConnString"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connString);
connection.Open();
}
else if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public static string dboOwner=ConfigurationManager.ConnectionStrings["DataBaseOwner"].ConnectionString;
#endregion
#region ExecuteCommand 执行带参数的SQL命令
/// <summary>
/// 执行带参数的SQL命令
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteCommand(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(dboOwner + sql, Connection);
command.CommandType = CommandType.StoredProcedure;
if (values != null)
command.Parameters.AddRange(values);
int result = command.ExecuteNonQuery();
return result;
}
#endregion
#region GetReader 执行带参数的SQL命令,返回SqlDataReader对象
/// <summary>
/// 执行SQL命令,返回SqlDataReader对象
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(dboOwner + sql, Connection);
command.CommandType = CommandType.StoredProcedure;
if (values != null)
command.Parameters.AddRange(values);
SqlDataReader reader = command.ExecuteReader();
return reader;
}
#endregion
#region GetScalar 执行带参数的SQL命令,返回结果中的第一行第一列
/// <summary>
/// 执行带参数的SQL命令,返回结果中的第一行第一列
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int GetScalar(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(dboOwner + sql, Connection);
command.CommandType = CommandType.StoredProcedure;
if (values != null)
command.Parameters.AddRange(values);
int result = command.ExecuteNonQuery();
return result;
}
#endregion
#region GetDataSet 执行带参数的SQL命令,返回DataTable对象
/// <summary>
/// 执行SQL命令,返回DataTable对象
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable GetDataSet(string sql,params SqlParameter[] values)
{
DataSet ds = new DataSet();
SqlCommand command = new SqlCommand(dboOwner + sql, Connection);
command.CommandType = CommandType.StoredProcedure;
if (values != null)
command.Parameters.AddRange(values);
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(ds);
return ds.Tables[0];
}
#endregion
}
}
分享到:
相关推荐
在 ASP.NET 中连接数据库是一项基础且至关重要的任务,它允许应用程序与存储在数据库中的数据进行交互。本示例展示了如何在 ASP.NET 中连接 Informix 数据库,尽管其他类型的数据库(如 SQL Server)也可以采用类似...
《.NET通用数据库访问类(优化版 增加MySQL)源码解析》 在.NET开发中,数据库访问层的设计是系统架构中的重要一环。一个优秀的数据库访问类能够极大地提高开发效率,减少代码重复,使得系统更具扩展性和灵活性。本篇...
本文将详细介绍一个通用的ADO.NET连接数据库的方法,并通过一个具体的`DBHelper.cs`类来实现这一目标。 #### 一、概述 在实际应用中,为了提高代码的复用性和维护性,通常会创建一个专门的辅助类来处理数据库连接...
C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle) 这个类封装成dll后,相关数据库连接可在,引用该dll项目的app.config文件中写,如果是web程序,这需要修改代码,将构造函数中获取app.config的信息换成获取...
ASP.NET通用数据库访问组件是一种软件开发工具,它提供了一种标准化的方法来访问各种类型的数据库,如MSSQL(Microsoft SQL Server)、MYSQL(MySQL Server)、ORACLE(Oracle Database)和ACCESS(Microsoft Access...
### VB.NET连接数据库的方法及代码 在VB.NET中连接数据库是一项基本且重要的技能,它能够帮助开发者实现数据的存储、查询、更新等操作。本文将详细介绍如何使用VB.NET通过不同的方式来连接各种类型的数据库。 ####...
通过这样的通用类,开发者可以在ASP.NET应用中轻松地访问Oracle数据库,无需每次都手动处理数据库连接、命令执行等细节。只需调用`OracleHelper`类的方法,传入适当的参数,即可完成数据库操作。这样的设计提高了...
这个"通用.NET数据库访问类"是一个设计用于简化数据库操作的C#代码库。它遵循面向接口编程的原则,这使得代码更具有可扩展性和可维护性。下面将详细介绍这个数据库访问类的关键知识点。 首先,接口(Interface)在...
在这个“ASP.NET 2.0数据库通用模块开发与系统移植1”的主题中,我们将深入探讨如何利用ASP.NET 2.0构建可复用的数据库模块,并讨论系统移植的相关策略。 首先,我们需要理解ASP.NET 2.0中的数据访问层(DAL)。在...
例如,它可能封装了连接数据库、执行SQL语句、处理事务、读写数据等常见操作。开发者可以利用此类快速地进行增删改查,而无需每次都编写相同的数据库访问代码。通过合理设计,DB.cs还可以支持多种数据库类型,如SQL ...
### SQL数据库通用访问类在ASP.NET中的应用与详解 #### 引言 在现代Web开发中,特别是使用ASP.NET框架进行开发时,高效且安全地访问数据库是项目成功的关键因素之一。本文将深入探讨一个专门为ASP.NET设计的SQL...
ADO.NET通用数据库访问类是开发者为了简化数据库操作而设计的抽象层,它封装了基本的数据库连接、命令执行、数据读取等功能,使得在不同数据库间切换时无需大量修改代码。 在给定的代码示例中,我们看到一个名为`...
标题"ASP.NET公用数据库访问类组件(支持多种数据库)"所提及的组件,是一个设计用于ASP.NET应用程序的通用解决方案,它允许程序与各种类型的数据库进行交互,如SQL Server、MySQL、Oracle、SQLite等。这种组件通常...
在C#.NET编程中,创建一个抽象的数据库连接类是一个重要的设计模式,它允许开发者编写通用的代码来处理各种不同的数据库系统,如SQL Server、MySQL、Oracle等。这个设计模式通常被称为“数据提供者”(DataProvider...
首先,我们要创建一个数据库访问的基类,这个类通常包含连接数据库的基本方法,如打开、关闭连接,以及执行SQL语句的方法。以下是一个简单的示例: ```csharp using System.Data; using System.Data.SqlClient; // ...
ASP.NET的`DBHelper`类通常会利用数据库的连接池机制。连接池可以重用已打开的数据库连接,减少创建和关闭连接的开销,提高性能。在操作完成后,`DBHelper`类会将连接返回到连接池,而不是立即关闭它。 4. **事务...
;database=Grant_Manage;uid=sa;pwd=;" providerName="System.Data.SqlClient"/> </connectionStrings>
### 三、连接数据库 #### 1. 连接字符串格式 - **对于Access**: ```vbnet sConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};", sDBName) ``` - **对于SQL Server**: ```vbnet ...
在这个"ASP.NET 2.0 数据库通用模块开发与系统移植"的主题中,我们将深入探讨如何在ASP.NET 2.0环境中设计和实现可复用的数据库模块,并讨论系统移植的相关技术。 首先,我们来看第4章,这通常涉及到基础架构和项目...
标题中的".NET通用数据库访问类(支持存储过程)"是指一种.NET框架下的编程工具,它提供了一个统一的接口,使得开发者可以方便地访问多种类型的数据库,包括SQLServer、Oracle、MySQL、SQLite、ACCESS以及DB2。...