繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> 数据库应用 >> 给大家一个数据库操作类。应该来说很全了。我自己用的。

给大家一个数据库操作类。应该来说很全了。我自己用的。

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:25  文字大小:【】【】【
简介://版权所有 OSLEAGUE 2002-2003 //作者:Blood using System; using System.Data; using System.Data.SqlClient; using System.Web; using OSLeagueForumXP.Components; namespace OSLeagueForumXP.Common { &n...

//版权所有 OSLEAGUE 2002-2003

//作者:Blood

using System;

using System.Data;

using System.Data.SqlClient;

using System.Web;

using OSLeagueForumXP.Components;

namespace OSLeagueForumXP.Common

{

///

/// 数据库操作通用类

///

public class DataBase : IDisposable

{

///

/// 数据库连接源

///

private SqlConnection SqlConn;

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// 储存过程返回的值

public int RunProcedure(string ProcedureName)

{

SqlCommand Sqlcmd = CreateCommand(ProcedureName, null);

Sqlcmd.ExecuteNonQuery();

this.Close();

return (int)Sqlcmd.Parameters["ReturnValue"].Value;

}

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// 储存过程参数

/// 储存过程返回值

public int RunProcedure(string ProcedureName, SqlParameter[] SqlPrams)

{

SqlCommand Sqlcmd = CreateCommand(ProcedureName, SqlPrams);

Sqlcmd.ExecuteNonQuery();

this.Close();

return (int)Sqlcmd.Parameters["ReturnValue"].Value;

}

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// 以SqlDataReader返回储存过程结果

public void RunProcedure(string ProcedureName, out SqlDataReader SqlReader)

{

SqlCommand Sqlcmd = CreateCommand(ProcedureName, null);

SqlReader = Sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);

}

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// 储存过程参数

/// 以SqlDataReader返回储存过程结果

public void RunProcedure(string ProcedureName, SqlParameter[] SqlPrams, out SqlDataReader SqlReader)

{

SqlCommand Sqlcmd = CreateCommand(ProcedureName, SqlPrams);

SqlReader = Sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);

}

///

/// 运行Sql Server储存过程

///

/// 储存过程名称

/// 数据表

/// DataSet对象

public DataSet RunProcedure(string ProcedureName, string Table)

{

DataSet SqlDS = new DataSet();

SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,null);

SqlDA.Fill(SqlDS,Table);

return(SqlDS);

}

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// Sql参数

/// 数据表

/// DataSet对象

public DataSet RunProcedure(string ProcedureName, SqlParameter[] SqlPrams,string Table)

{

DataSet SqlDS = new DataSet();

SqlDataAdapter SqlDA = CreateDataAdapter(ProcedureName,SqlPrams);

SqlDA.Fill(SqlDS,Table);

return(SqlDS);

}

///

/// 运行Sql Server储存过程

///

/// 储存过程名称

/// 数据表

/// 开始记录

/// 最大记录数

/// DataSet对象

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);

}

///

/// 运行SQL Server储存过程

///

/// 储存过程名称

/// Sql参数

/// 数据表

/// 开始记录

/// 最大记录数

/// DataSet对象

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);

}

///

/// 创建SqlDataAdapter对象

///

/// 储存过程

/// Sql参数

/// 类型

/// SqlDataAdapter对象

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;

}

///

/// 创建一个SqlCommand对象来调用储存过程

///

/// 储存过程名称

/// 储存过程参数

/// SqlCommand对象

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;

}

///

/// 打开数据库连接

///

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();

}

///

/// 关闭数据库连接

///

public void Close()

{

if (SqlConn != null)

SqlConn.Close();

}

///

/// 释放资源

///

public void Dispose()

{

// 确定以关闭数据库连接

if (SqlConn != null)

{

SqlConn.Dispose();

SqlConn = null;

}

}

///

/// 创建输入参数

///

/// 参数名称

/// 参数类型

/// 参数大小

/// 参数值

/// 新的参数

public SqlParameter MakeInputParameter(string ParameterName, SqlDbType DbType, int Size, object Value)

{

return MakeParameter(ParameterName, DbType, Size, ParameterDirection.Input, Value);

}

///

/// 创建输出参数

///

/// 参数名称

/// 参数类型

/// 参数大小

/// 新的参数

public SqlParameter MakeOutParameter(string ParameterName, SqlDbType DbType, int Size)

{

return MakeParameter(ParameterName, DbType, Size, ParameterDirection.Output, null);

}

///

/// 创建储存过程参数

///

/// 参数名称

/// 参数类型

/// 参数大小

/// 参数方法

/// 参数值

/// 新的参数

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;

}

}

}

责任编辑:admin
相关文章