//
存储过程的参数部分
存储过程的参数部分——清除和添加参数 #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
存储过程的参数部分——清除和添加参数 #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
由于代码比较长,所以呢分成几个部分显示。