现在网上流行的用SqlParameter数组传参的方法我参与开发的一个高格教务系统一直在用,但在这过程中如果遇到需要传回的参数很多的时候(比如有十几二十个)就会比较麻烦,特别是当这十几个参数中我突然不要了哪一个时就要改SqlParameter数组中的索引值,还要一一得对应起来,这让人很痛苦.于是,我稍微改动了一下,让对应SqlParameter数组中的参数时更方便些.如下,
public static class PublicVar
{
//定义操作字符
public static SqlCommand sqlcmd;//定义命令语句
public static SqlParameter SqlParam;//定义SQL参数
}
//公共方法
public class PublicMethod
{
//使sql参数完整
public SqlParameter Param(string parameterName, object parameterValue, SqlDbType dbType)
{
//实例化
PublicVar.SqlParam = new SqlParameter();
//传回数据库里对应的参数名称
PublicVar.SqlParam.ParameterName = parameterName;
//参数的值
PublicVar.SqlParam.Value = parameterValue;
//参数的字段类型
PublicVar.SqlParam.SqlDbType = dbType;
return PublicVar.SqlParam;
}
}
当引用的时候就这样:
//实例化BLL层
public static GoldCoinCode_BLL.PublicMethod myMethod = new GoldCoinCode_BLL.PublicMethod();
public static DataTable BLL_Select(string KaBianHao_Name1)
{
//定义一个SQL参数数组,并赋值参数名称,参数值,参数字段类型
SqlParameter[] SQlCMDpas = {
myMethod.Param("@type",1,SqlDbType.Int),
myMethod.Param("@KaBianHao_Name1",KaBianHao_Name1,SqlDbType.Char)
};
//实例化DAL层对应的类,调用DAL类,传入参数
DataTable dt = GoldCoinCode_DAL.PublicMethod.DAL_SelectDB_Par("HuiYuanGuanLi_Select", SQlCMDpas);
return dt;
}
如此便不用一一去对应SqlParameter[]中的Value的值,方便许多.