数据访问层 —— 存储过程部分,包括存储过程的参数
//存储过程的参数部分

存储过程的参数部分——清除和添加参数#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
由于代码比较长,所以呢分成几个部分显示。
http://www.cnblogs.com/jyk/archive/2006/08/16/478019.html
浙公网安备 33010602011771号