//存储过程的参数部分 存储过程的参数部分——清除和添加参数#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 输入型的参数 int 、double、decimal、nvarChar、、、#region 输入型的参数 int 、double、decimal、nvarChar、、、 int#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,4); //添加存储过程的参数 cm.Parameters[ParameterName].Value=ParameterValue; //负值 //设置方向取默认值——输入 } #endregion double#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 decimal#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 nvarChar#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 nText#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 bit#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,JYK.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,4000); //添加存储过程的参数 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 //存储过程部分 运行存储过程返回记录(DataSet、DataTable、不返回记录集)#region 运行存储过程返回记录(DataSet、DataTable、不返回记录集) /**//// <summary> /// 运行存储过程返回DataSet。DataSet里面可以是多个表(DateTable) /// </summary> /// <param name="StoredProcedureName">存储过程名称</param> /// <returns>返回DataSet</returns> 函数实现 — — RunStoreDataSet#region 函数实现 — — RunStoreDataSet public DataSet RunStoreDataSet(string StoredProcedureName) ...{ SetCommand(StoredProcedureName,2); //设置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> 函数实现 — — RunStoreDataTable#region 函数实现 — — RunStoreDataTable public DataTable RunStoreDataTable(string StoredProcedureName) ...{ SetCommand(StoredProcedureName,2); //设置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,2); //设置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 由于代码比较长,所以呢分成几个部分显示。