using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using OSLeagueForumXP.Components;
namespace OSLeagueForumXP.Common
{
/// <summary>
/// 数据库操作通用类
/// </summary>
public class DataBase : IDisposable
{
/// <summary>
/// 数据库连接源
/// </summary>
private SqlConnection SqlConn;
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <returns>储存过程返回的值</returns>
public int RunProcedure(string ProcedureName)
{
SqlCommand Sqlcmd = CreateCommand(ProcedureName, null);
Sqlcmd.ExecuteNonQuery();
this.Close();
return (int)Sqlcmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlPrams">储存过程参数</param>
/// <returns>储存过程返回值</returns>
public int RunProcedure(string ProcedureName, SqlParameter[] SqlPrams)
{
SqlCommand Sqlcmd = CreateCommand(ProcedureName, SqlPrams);
Sqlcmd.ExecuteNonQuery();
this.Close();
return (int)Sqlcmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlReader">以SqlDataReader返回储存过程结果</param>
public void RunProcedure(string ProcedureName, out SqlDataReader SqlReader)
{
SqlCommand Sqlcmd = CreateCommand(ProcedureName, null);
SqlReader = Sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlPrams">储存过程参数</param>
/// <param name="SqlReader">以SqlDataReader返回储存过程结果</param>
public void RunProcedure(string ProcedureName, SqlParameter[] SqlPrams, out SqlDataReader SqlReader)
{
SqlCommand Sqlcmd = CreateCommand(ProcedureName, SqlPrams);
SqlReader = Sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
/// 运行Sql Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="Table">数据表</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string ProcedureName, string Table)
{
DataSet SqlDS = new DataSet();
SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,null);
SqlDA.Fill(SqlDS,Table);
return(SqlDS);
}
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlPrams">Sql参数</param>
/// <param name="Table">数据表</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string ProcedureName, SqlParameter[] SqlPrams,string Table)
{
DataSet SqlDS = new DataSet();
SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,SqlPrams);
SqlDA.Fill(SqlDS,Table);
return(SqlDS);
}
/// <summary>
/// 运行Sql Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="Table">数据表</param>
/// <param name="StartRecord">开始记录</param>
/// <param name="MaxRecord">最大记录数</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string ProcedureName, string Table,int StartRecord,int MaxRecord)
{
DataSet SqlDS = new DataSet();
SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,null);
SqlDA.Fill(SqlDS,StartRecord,MaxRecord,Table);
return(SqlDS);
}
/// <summary>
/// 运行SQL Server储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlPrams">Sql参数</param>
/// <param name="Table">数据表</param>
/// <param name="StartRecord">开始记录</param>
/// <param name="MaxRecord">最大记录数</param>
/// <returns>DataSet对象</returns>
public DataSet RunProcedure(string ProcedureName, SqlParameter[] SqlPrams,string Table,int StartRecord,int MaxRecord)
{
DataSet SqlDS = new DataSet();
SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,SqlPrams);
SqlDA.Fill(SqlDS,StartRecord,MaxRecord,Table);
return(SqlDS);
}
/// <summary>
/// 创建SqlDataAdapter对象
/// </summary>
/// <param name="ProcedureName">储存过程</param>
/// <param name="SqlPrams">Sql参数</param>
/// <param name="Type">类型</param>
/// <returns>SqlDataAdapter对象</returns>
private SqlDataAdapter CreateDataAdapter(string ProcedureName, SqlParameter[] SqlPrams)
{
//打开数据库连接
Open();
SqlDataAdapter SqlDA = new SqlDataAdapter(ProcedureName, SqlConn);
SqlDA.SelectCommand.CommandType = CommandType.StoredProcedure;
// 添加储存过程参数
if (SqlPrams != null)
{
foreach (SqlParameter Sqlparameter in SqlPrams)
{
SqlDA.SelectCommand.Parameters.Add(Sqlparameter);
}
}
// 返回参数
SqlDA.SelectCommand.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return SqlDA;
}
/// <summary>
/// 创建一个SqlCommand对象来调用储存过程
/// </summary>
/// <param name="ProcedureName">储存过程名称</param>
/// <param name="SqlPrams">储存过程参数</param>
/// <returns>SqlCommand对象</returns>
private SqlCommand CreateCommand(string ProcedureName, SqlParameter[] SqlPrams)
{
//打开数据库连接
Open();
SqlCommand Sqlcmd = new SqlCommand(ProcedureName, SqlConn);
Sqlcmd.CommandType = CommandType.StoredProcedure;
// 添加储存过程参数
if (SqlPrams != null)
{
foreach (SqlParameter Sqlparameter in SqlPrams)
{
Sqlcmd.Parameters.Add(Sqlparameter);
}
}
// 返回参数
Sqlcmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return Sqlcmd;
}
/// <summary>
/// 打开数据库连接
/// </summary>
public void Open()
{
INI clsini = new INI();
string strGetKey = clsini.Read("Common","SqlConn","",HttpContext.Current.Server.MapPath("../config.aspx"));
// 如果没有打开数据库,则打开数据库连接
SqlConn = new SqlConnection(strGetKey);
SqlConn.Open();
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
if (SqlConn != null)
SqlConn.Close();
}
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确定以关闭数据库连接
if (SqlConn != null)
{
SqlConn.Dispose();
SqlConn = null;
}
}
/// <summary>
/// 创建输入参数
/// </summary>
/// <param name="ParameterName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的参数</returns>
public SqlParameter MakeInputParameter(string ParameterName, SqlDbType DbType, int Size, object Value)
{
return MakeParameter(ParameterName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 创建输出参数
/// </summary>
/// <param name="ParameterName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的参数</returns>
public SqlParameter MakeOutParameter(string ParameterName, SqlDbType DbType, int Size)
{
return MakeParameter(ParameterName, DbType, Size, ParameterDirection.Output, null);
}
/// <summary>
/// 创建储存过程参数
/// </summary>
/// <param name="ParameterName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方法</param>
/// <param name="Value">参数值</param>
/// <returns>新的参数</returns>
public SqlParameter MakeParameter(string ParameterName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter SqlParam;
if(Size > 0)
{
SqlParam = new SqlParameter(ParameterName, DbType, Size);
}
else
{
SqlParam = new SqlParameter(ParameterName, DbType);
}
SqlParam.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
SqlParam.Value = Value;
}
return SqlParam;
}
}
}
分享到:
相关推荐
asp.net数据库操作类
C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类C#.net数据库操作类
一个自己总结的 .net数据库操作大全 拿来就用 节省时间
算是一个通用类,在利用ASP.NET网站和系统开发中可以实现对数据库常用操作
数据库操作类: 支持 SQLServer mysql sqlite Sybase Oracle等DB 数据库操作类 包括执行SQL或者存储过程,返回DataSet、DataTable等功能 完全支持存储过程和参数调用 javascriptClassLibrary 包括一些JavaScript 类...
C#.net的常用数据库操作类啊撒旦发射点
asp .net ,c# ,sqlserver,sql,数据库,操作类,类 dotnet 操作数据库的类,里面有两个类,一个是操作SQLSERVER 的类SqlHelper,还有一个是操作Access的类sqlhelper2
sql 数据库操作类 封装好了方法 一般 存储过程,和参数化都有
本书主要面向.NET2.0初学者而写的入门书,旨在通过该书的学习,帮助读者打好.NET2.0的基础,了解和掌握使用ASP .NET2.0开发出一个功能高效、强悍,代码简洁、规范的网络和数据库应用系统,并对程序开发有一个完整、...
通用access数据库访问类(asp.net),几乎囊括所有的access数据库操作,搞这个不容易啊
Asp.net(c#)数据库操作类 。
数据库链接基础类,读取配置文件信息。
介绍ADO.NET数据库操作中类介绍的程序Demo,包括Connection类、Command类、DataAdapter类、DataSet类、DataTable类 DataRow类、DataColumn类等
备份和恢复数据库模块 触发器的操作模块 存储过程的高级应用模块 图片类型数据处理模块 输出Word和Excel报表模块 报表模块 多文档窗体程序设计 复杂的初始屏幕窗口和简单的初始屏幕窗口 类Windows资源管理器窗口 ...
asp.net(C#)通用数据库操作类,下载后在您的程序中就可以使用。
超级.net(C#)数据库实体操作类生成器,含数据库操作类 使用说明 修改 Conn.xml 数据库链接 修改 Set.xml 文件保存目录 注意:使用环境 .net 4.0 数据库2005以上
因为工作至今接触的数据库还算比较全面,每次搭建新项目开发数据库选择后,都要编写整理对应的.NET与数据库交互的DBHelper助手类,时间一长,便将各类型数据库助手类整理出来共享,在提升大家开发效率的同时,减少...
该类的方法为静态方法,适合数据库操作不是太复杂的程序使用,。。。。