利用SQL存储过程的基层数据类
来源:互联网 发布:商派onex 源码下载 编辑:程序博客网 时间:2024/05/29 08:35
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace OA.Components
...{
/**//// <summary>
/// 通过数据库处理类,通过ADO.NET与数据库连接,采用SQL存储过程
/// </summary>
public class Database :IDisposable
...{
private readonly string SQLCONNECTIONSTRING = ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"].ToString();
private SqlConnection conn;
public Database()
...{
//
// TODO: 在此处添加构造函数逻辑
//
}
private void Open()
...{
if (conn == null)
...{conn = new SqlConnection(SQLCONNECTIONSTRING);}
if (conn.State == ConnectionState.Closed)
...{
try...{conn.Open();}
catch (Exception ex) ...{throw new Exception("数据库连接失败!",ex);}
}
}
//<summary>关闭数据库连接</summary>
public void Close()
...{
if (conn != null)
...{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
public void Dispose()
...{
if (conn != null)
...{
conn.Dispose();
conn = null;
}
}
//<summary>
//执行存储过程
//<param name = "procName">存储过程名称</param>
//返回存储过程返回值
//</summary>
public int RunProc(string procName)
...{
SqlCommand cmd = CreateCommand(procName,null);
try...{cmd.ExecuteNonQuery();}
catch(Exception ex) ...{throw new Exception("操作有误!",ex);}
Close();
return (int) cmd.Parameters["ReturnValue"].Value;
}
public int RunProc(string procName, SqlParameter[] prams)
...{
SqlCommand cmd = CreateCommand(procName, prams);
try
...{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
...{
SystemError.SystemLog(ex.Message);
}
Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
public void RunProc(string procName,out SqlDataReader dataReader )
...{
SqlCommand cmd = CreateCommand(procName,null);
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
public void RunProc(string procName,SqlParameter[] prams,out SqlDataReader dataReader)
...{
SqlCommand cmd = CreateCommand(procName,prams);
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
//<summary>
//创建一个SqlCommand 对象来执行存储过程
//<param name = "procName">存储过程名称</param>
//<param name = "prams">存储过程参数</param>
//return 返回sqlCommand 对象
//</summary>
private SqlCommand CreateCommand(string procName,SqlParameter[] prams)
...{
Open();
SqlCommand cmd = new SqlCommand(procName,conn);
cmd.CommandType = CommandType.StoredProcedure;
//依次把参数传入存储过程
if (prams != null)
...{
foreach (SqlParameter parameter in prams)
...{
cmd.Parameters.Add(parameter);
}
}
//加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,
string.Empty,DataRowVersion.Default,null));
return cmd;
}
//<summary>
//生成存储过程的参数
//<param name="ParamName">存储过程名称</param>
//<param name="DbType">参数类型</param>
//<param name="Size">参数大小</param>
//<param name="Direction">参数方向</param>
//<param name="Value">参数值</param>
//<returns> 新的 Parameter 对象</returns>
public SqlParameter CreateParam(string ParamName,SqlDbType DbType,Int32 Size,ParameterDirection Direction,object Value)
...{
SqlParameter param;
//当参数大小为 0 时,不使用该参数的大小
if (Size >0)
...{
param = new SqlParameter(ParamName,DbType,Size);
}
else
...{
param = new SqlParameter(ParamName,DbType);
}
//创建输出类型的参数
param.Direction = Direction;
if (!(Direction==ParameterDirection.Output && Value == null))
...{
param.Value = Value;
}
return param;
}
public SqlParameter CreateInParam(string ParamName,SqlDbType DbType,int Size,object Value)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.Input,Value);
}
public SqlParameter CreateOutParam(string ParamName,SqlDbType DbType,int Size)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.Output,null);
}
public SqlParameter CreateReturnParam(string ParamName,SqlDbType DbType,int Size)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.ReturnValue,null);
}
}
}
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace OA.Components
...{
/**//// <summary>
/// 通过数据库处理类,通过ADO.NET与数据库连接,采用SQL存储过程
/// </summary>
public class Database :IDisposable
...{
private readonly string SQLCONNECTIONSTRING = ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"].ToString();
private SqlConnection conn;
public Database()
...{
//
// TODO: 在此处添加构造函数逻辑
//
}
private void Open()
...{
if (conn == null)
...{conn = new SqlConnection(SQLCONNECTIONSTRING);}
if (conn.State == ConnectionState.Closed)
...{
try...{conn.Open();}
catch (Exception ex) ...{throw new Exception("数据库连接失败!",ex);}
}
}
//<summary>关闭数据库连接</summary>
public void Close()
...{
if (conn != null)
...{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
public void Dispose()
...{
if (conn != null)
...{
conn.Dispose();
conn = null;
}
}
//<summary>
//执行存储过程
//<param name = "procName">存储过程名称</param>
//返回存储过程返回值
//</summary>
public int RunProc(string procName)
...{
SqlCommand cmd = CreateCommand(procName,null);
try...{cmd.ExecuteNonQuery();}
catch(Exception ex) ...{throw new Exception("操作有误!",ex);}
Close();
return (int) cmd.Parameters["ReturnValue"].Value;
}
public int RunProc(string procName, SqlParameter[] prams)
...{
SqlCommand cmd = CreateCommand(procName, prams);
try
...{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
...{
SystemError.SystemLog(ex.Message);
}
Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
public void RunProc(string procName,out SqlDataReader dataReader )
...{
SqlCommand cmd = CreateCommand(procName,null);
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
public void RunProc(string procName,SqlParameter[] prams,out SqlDataReader dataReader)
...{
SqlCommand cmd = CreateCommand(procName,prams);
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
//<summary>
//创建一个SqlCommand 对象来执行存储过程
//<param name = "procName">存储过程名称</param>
//<param name = "prams">存储过程参数</param>
//return 返回sqlCommand 对象
//</summary>
private SqlCommand CreateCommand(string procName,SqlParameter[] prams)
...{
Open();
SqlCommand cmd = new SqlCommand(procName,conn);
cmd.CommandType = CommandType.StoredProcedure;
//依次把参数传入存储过程
if (prams != null)
...{
foreach (SqlParameter parameter in prams)
...{
cmd.Parameters.Add(parameter);
}
}
//加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,
string.Empty,DataRowVersion.Default,null));
return cmd;
}
//<summary>
//生成存储过程的参数
//<param name="ParamName">存储过程名称</param>
//<param name="DbType">参数类型</param>
//<param name="Size">参数大小</param>
//<param name="Direction">参数方向</param>
//<param name="Value">参数值</param>
//<returns> 新的 Parameter 对象</returns>
public SqlParameter CreateParam(string ParamName,SqlDbType DbType,Int32 Size,ParameterDirection Direction,object Value)
...{
SqlParameter param;
//当参数大小为 0 时,不使用该参数的大小
if (Size >0)
...{
param = new SqlParameter(ParamName,DbType,Size);
}
else
...{
param = new SqlParameter(ParamName,DbType);
}
//创建输出类型的参数
param.Direction = Direction;
if (!(Direction==ParameterDirection.Output && Value == null))
...{
param.Value = Value;
}
return param;
}
public SqlParameter CreateInParam(string ParamName,SqlDbType DbType,int Size,object Value)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.Input,Value);
}
public SqlParameter CreateOutParam(string ParamName,SqlDbType DbType,int Size)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.Output,null);
}
public SqlParameter CreateReturnParam(string ParamName,SqlDbType DbType,int Size)
...{
return CreateParam(ParamName,DbType,Size,ParameterDirection.ReturnValue,null);
}
}
}
- 利用SQL存储过程的基层数据类
- 利用SQL的游标存储过程分页
- 利用SQL隐藏的存储过程分页
- 利用SQL存储过程给SqlDataReader数据分页
- 利用SQL存储过程创建表的插入数据语句(用于到别处还原整张表)
- SQL优化(索引、存储过程、数据分页的存储过程)
- SQL数据存储过程
- SQL server数据的存储过程
- 数据访问类 SQL存储过程
- SQL Server通用分页存储过程:利用SQL Server未公开的存储过程实现
- SQL Server通用分页存储过程:利用SQL Server未公开的存储过程实现
- SQL Server通用分页存储过程:利用SQL Server未公开的存储过程实现
- 利用SQL未公开的存储过程实现分页
- 利用SQL未公开的存储过程实现分页
- 利用存储过程来消除数据库中冗余的数据
- 利用存储过程进行表数据分离的案例分享
- sql的存储过程
- SQL:利用存储过程实现分页
- VLAN ,ARP,PING
- 设计五原则
- log4j的使用
- JavaScript 获取本周时间或本月时间
- 贴出我第一个手机Java程序
- 利用SQL存储过程的基层数据类
- 洗电脑
- 在InnoSetup制作的安装程序中下载安装其他程序
- 一个关闭程序的例子
- 最适合入门的三层架构
- Eclipse+tomcat+Myeclipse配置j2ee开发环境
- Visual SourceSafe 6.0 安装配置
- 提高IIS网站服务器的效率的八种方法
- Exception Process in WinCE & ARM --转帖-开坛首帖即转载,以后一定多多原创