我的数据访问函数库的源代码(四)—— 存储过程部分,包括存储过程的参数的封装
时间:2022-04-27
本文章向大家介绍我的数据访问函数库的源代码(四)—— 存储过程部分,包括存储过程的参数的封装,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/* 2008 4 25 更新 */
我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。
第四部分:存储过程部分,包括存储过程的参数
,主要是对存储过程的参数的封装。
//存储过程的参数部分
#region 存储过程的参数部分——清除和添加参数
#region 清除参数
/// <summary>
/// 清除SqlCommand的存储过程的参数。
/// </summary>
public void ClearParameter()
{cm.Parameters.Clear();}
#endregion
//int: tinyint、smallint
//bigint:
//bool: bit
//double: float、real
//string: char、nchar、varchar、nvarchar、uniqueidentifier、smalldatetime、datetime
//string: ntext、text
//decimal:从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。
//numeric:功能上等同于 decimal。
//decimal: smallmoney、money
//二进制
// binary、varbinary、image
#region 输入型的参数 int 、double、decimal、nvarChar、、、
#region int
/// <summary>
/// 添加int型的参数。
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
public void addNewParameter(string ParameterName,int ParameterValue)
{
cm.Parameters.Add(ParameterName,SqlDbType.Int,); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
//设置方向取默认值——输入
}
#endregion
#region double
/// <summary>
/// 添加小数参数,double
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
public void addNewParameter(string ParameterName,double ParameterValue )
{
cm.Parameters.Add(ParameterName,SqlDbType.Float ); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
}
#endregion
#region decimal
/// <summary>
/// 添加金额参数,方向是输入(input)。decimal
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
public void addNewParameter(string ParameterName,decimal ParameterValue )
{
cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
}
#endregion
#region nvarChar
/// <summary>
/// 添加nvarChar型的参数。方向是输入(input)
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
/// <param name="size">参数大小</param>
public void addNewParameter(string ParameterName,string ParameterValue,int size)
{
cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,size); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
}
#endregion
#region nText
/// <summary>
/// 添加nText型的参数。方向是输入(input)
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
public void addNewParameter(string ParameterName,string ParameterValue)
{
cm.Parameters.Add(ParameterName,SqlDbType.NText); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
}
#endregion
#region bit
/// <summary>
/// 添加bit型的参数。方向是输入(input)
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数值</param>
public void addNewParameter(string ParameterName,bool ParameterValue)
{
cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
cm.Parameters[ParameterName].Value=ParameterValue; //负值
}
#endregion
#endregion
#region 输出型的参数
/// <summary>
/// 添加输出型的参数。只支持常用的几个参数类型,如果需要可以扩充。
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <param name="ParameterValue">参数的类型</param>
public void addNewParameter(string ParameterName,HBS.ParameterKind kind)
{
switch(kind)
{
case ParameterKind.Int :
cm.Parameters.Add(ParameterName,SqlDbType.Int); //添加存储过程的参数
break;
case ParameterKind.Double:
cm.Parameters.Add(ParameterName,SqlDbType.Float); //添加存储过程的参数
break;
case ParameterKind.Decimal :
cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
break;
case ParameterKind.NVarChar :
cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,); //添加存储过程的参数
break;
case ParameterKind.Bit :
cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
break;
}
cm.Parameters[ParameterName].Direction= ParameterDirection.Output; //设置方向
}
#endregion
#endregion
#region 存储过程的参数部分——取参数的返回值
/// <summary>
/// 按序号返回参数值,一般在执行完存储过程后使用
/// </summary>
/// <param name="ParameterIndex">序号</param>
/// <returns>返回参数的内容</returns>
public string getParameter(int ParameterIndex)
{
return cm.Parameters[ParameterIndex].Value.ToString();
}
/// <summary>
/// 按名称返回参数值,一般在执行完存储过程后使用
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
/// <returns>返回参数的内容</returns>
public string getParameter(string ParameterName)
{
return cm.Parameters[ParameterName].Value.ToString();
}
#endregion
#region 存储过程的参数部分——修改参数值
/// <summary>
/// 按序号修改参数值,一般在一次添加多条记录时用。
/// </summary>
/// <param name="ParameterIndex">序号</param>
public void setParameter(int ParameterIndex,string parameterValue)
{ cm.Parameters[ParameterIndex].Value = parameterValue;}
/// <summary>
/// 按名称修改参数值,一般在一次添加多条记录时用
/// </summary>
/// <param name="ParameterName">参数名称。比如 @UserName</param>
public void setParameter(string ParameterName,string parameterValue)
{ cm.Parameters[ParameterName].Value = parameterValue;}
#endregion
//存储过程部分
#region 运行存储过程返回记录(DataSet、DataTable、不返回记录集)
/// <summary>
/// 运行存储过程返回DataSet。DataSet里面可以是多个表(DateTable)
/// </summary>
/// <param name="StoredProcedureName">存储过程名称</param>
/// <returns>返回DataSet</returns>
#region 函数实现 — — RunStoreDataSet
public DataSet RunStoreDataSet(string StoredProcedureName)
{
SetCommand(StoredProcedureName,); //设置command
SqlDataAdapter da = new SqlDataAdapter(cm);
try
{
DataSet DS = new DataSet();
da.Fill(DS);
return DS;
}
catch(Exception ex)
{
SetErrorMsg("RunStoreDataSet",StoredProcedureName,ex.Message ); //处理错误
return null;
}
finally
{
da.Dispose();
}
}
#endregion
/// <summary>
/// 运行存储过程返回DataTable。
/// </summary>
/// <param name="StoredProcedureName">存储过程名称</param>
/// <returns>返回DataTable</returns>
#region 函数实现 — — RunStoreDataTable
public DataTable RunStoreDataTable(string StoredProcedureName)
{
SetCommand(StoredProcedureName,); //设置command
SqlDataAdapter da = new SqlDataAdapter(cm);
try
{
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch(Exception ex)
{
SetErrorMsg("RunStoreDataTable",StoredProcedureName,ex.Message ); //处理错误
return null;
}
finally
{
da.Dispose();
}
}
#endregion
/// <summary>
/// 运行存储过程 不返回记录集,用于添加、修改、删除等操作
/// </summary>
/// <param name="ParameterName">存储过程名称</param>
/// <returns></returns>
public void RunStore(string StoredProcedureName)
{
SetCommand(StoredProcedureName,); //设置command
try
{
if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
cm.Connection.Open();
cm.ExecuteNonQuery();
}
catch(Exception ex)
{
SetErrorMsg("RunStore",StoredProcedureName,ex.Message ); //处理错误
}
finally
{
if (!isUseTrans)
cm.Connection.Close();
}
}
#endregion
下载全部源文件。
http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP怎么搭建百度Ueditor富文本编辑器
- 使用composer命令加载vendor中的第三方类库 的方法
- PHP批斗大会之缺失的异常详解
- Laravel 6.2 中添加了可调用容器对象的方法
- php实现微信企业转账功能
- 在 Laravel 6 中缓存数据库查询结果的方法
- PHP操作XML中XPath的应用示例
- Laravel手动返回错误码示例
- laravel添加前台跳转成功页面示例
- PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
- thinkPHP利用ajax异步上传图片并显示、删除的示例
- Yii框架where查询用法实例分析
- PHP命名空间(namespace)原理与用法详解
- Laravel 在views中加载公共页面的实现代码
- php无限极分类实现方法分析