如果不
SqlParameterCollection调用其构造函数(新),则不能使用任何变量(例如,参考对象),但是不能使用新变量
SqlParameterCollection直接对其进行初始化。它没有公共构造函数,只能从existant的属性中检索
SqlCommand。
SqlCommand cmd = new SqlCommand(commandText, connection); SqlParameterCollection sp = cmd.Parameters;
我建议将您的
InsertData方法更改为接受a,
List<SqlParameter>并让其处理将参数添加到
SqlCommand执行命令文本的
List<SqlParameter> sp = new List<SqlParameter>(){ new SqlParameter() {ParameterName = "@CmpyCode", SqlDbType = SqlDbType.NVarChar, Value= CV.Global.CMPYCODE}, new SqlParameter() {ParameterName = "@Code", SqlDbType = SqlDbType.NVarChar, Value = preName}, new SqlParameter() {ParameterName = "@DisplayCode", SqlDbType = SqlDbType.NVarChar, Value = preName + "-"}, new SqlParameter() {ParameterName = "@TotalDigit", SqlDbType = SqlDbType.Int, Value = CV.Global.PARAMTOTALDIGIT}};insertData(CV.Sps.SP_INSERT_PARAM_TABLE, sp);并
insertData简单地接收SqlParameter的可选列表,并将它们添加到内部
SqlCommand参数集合(如果需要)
internal static int insertData(string spName, List<SqlParameter> sp = null){ .... if(sp != null) cmd.Parameters.AddRange(sp.ToArray()); ....}


