出现了“另一个 SqlParameterCollection 中已包含 SqlParameter”异常

出现了“另一个 SqlParameterCollection 中已包含 SqlParameter”异常

项目中使用了把命令字符串传入到数据操作类中的数据库操作方式,今天看到使用直接在命令字符串中包含参数可能会造成SQL注入漏洞,于是想把命令字符串改成用参数传入的方式,即select * from member where id=@ID,然后传SqlParameter数组(有几个SqlParameter数组就有几个元素)到数据库操作方法,也就是比原来直接传值的方式多传一个数组。然后传上的这个数组再在数据库操作方法中这样写

for(int i=0;i<paramArr.length;i++){

sqlCom.Parameters.add(paramArr[i]);

}

这样写本来以为就能够直接把参数传过去了,没想到一运行竟然提示出了“另一个 SqlParameterCollection 中已包含 SqlParameter”异常,用了几种方法试了一下都不能完全解决,在网上查了一下发现这种方法很易用,而且用了以后网站确实正常了。代码如下:

foreach (SqlParameter p in paramArr)
{
       SqlParameter pp = (SqlParameter)((ICloneable)p).Clone();
       sqlCom.Parameters.Add(pp);
}

这样就能同时更新两个表/数据库中的数据了;

你可能感兴趣的:(出现了“另一个 SqlParameterCollection 中已包含 SqlParameter”异常)