另一个 OleDbParameterCollection 中已包含 OleDbParameter 错误分析及解决办法
程序非常简单,就是从一个表中取出一个符合要求的数据,如果取到,就把该数据对应的计数加1。
也就是执行不同的两个SQL语句操作同一个表,并且这两个SQL的参数是一样的。在一个函数里完成这个调用。
执行第二个SQL调用时,老是提示“另一个 OleDbParameterCollection 中已包含 OleDbParameter。”
非常奇怪,两个SQL语句正确,参数设定正确,分开执行正确,一起执行就出错,百思不得其解。
在网上搜索,得到第一个解决办法:
foreach (OleDbParameter Param in ParamList)
{
//cmd.Parameters.Add(Param);
cmd.Parameters.AddWithValue(Param.ParameterName, Param.Value);
}
把上面注释语句更改一下,没有异常了。虽然问题没有了,可是觉得很奇怪。继续搜索,
看到一个牛人的分析:OleDbParameter还有parent的。
第二个解决办法:
对上一个使用了 OleDbParameter 的 OleDbCommand,在使用完成之后,要
cmd.Parameters.Clear();
具体的分析过程就不说了。
学到最重要的一招,就是用Reflector去分析.net的源码。
再对比上面两种解决办法,
Parameters.Add 应该是传递的引用,OleDbCommand在执行过程中,更改了OleDbParameter的成员值,所以,在下一个调用OleDbParameter的OleDbCommand中,执行出错。
Parameters.AddWithValue 应该是内部重新生成一个OleDbParameter对象。
应该说,第二种解决办法更好一点。
另一个 OleDbParameterCollection 中已包含 OleDbParameter 错误分析及解决办法的更多相关文章
- 另一个SqlParameterCollection中已包含SqlParameter
一般情况下,我们定义的一个SqlParameter参数数组,如: SqlParameter[] parms = { new SqlParamete ...
- 另一个 SqlParameterCollection 中已包含 SqlParameter
出处:http://www.cnblogs.com/OldYongs/archive/2011/03/12/1982021.html#2742742 一般情况下,我们定义的一个SqlParameter ...
- 【EF框架】另一个 SqlParameterCollection 中已包含 SqlParameter。
查询报表的时候需要通过两次查询取出数据. 第一次,用count(*)查出总数: 第二次,用rownumber分页取出想要的页内容: 为了防止sql注入,使用SqlParameter来传递参数 var ...
- 另一个SqlParameterCollection中已包含SqlParameter(转)
一般情况下,我们定义的一个SqlParameter参数数组,如: SqlParameter[] parms = { new SqlParamete ...
- EF另一个 SqlParameterCollection 中已包含 SqlParameter。
代码: SqlParameter[] commandParameters = new SqlParameter[]{ new SqlParameter("@CultID",filt ...
- c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法
[前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// ...
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
主要掌握String中的方法 char[] toCharArray() 将此字符串转换为一个新的字符数组. int indexOf(String str) 返回 ...
- 在SQLSERVER中如何检测一个字符串中是否包含另一个字符串
--当charindex返回值大于0时则包含 为0不包含 select CHARINDEX('456','123456') SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字 ...
- Java 正则判断一个字符串中是否包含中文
使用正则判断一个字符串中是否包含中文或者中文字符 代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /** ...
随机推荐
- HTML5手机APP开发入门(2)
HTML5手机APP开发入门(2) 课程内容 使用IonicFramework v2 + angular 2 完成一个简单的联系人列表的操作,有三个页面: ListPage,DetailPage,Ad ...
- MongoDB副本集配置系列九:MongoDB 常见问题
What is a namespace in MongoDB? If you remove a document, does MongoDB remove it from disk? When doe ...
- Uploadify v3.2.1 上传图片并预览
前端JSP: <script type="text/javascript"> $(function() { $("#upload_org_code" ...
- SVM实现多分类的三种方案
SVM本身是一个二值分类器 SVM算法最初是为二值分类问题设计的,当处理多类问题时,就需要构造合适的多类分类器. 目前,构造SVM多类分类器的方法主要有两类 (1)直接法,直接在目标函数上进行修改,将 ...
- 用ASP.NET Core 1.0中实现邮件发送功能
准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...
- SQL 性能调优日常积累【转】
阅读目录 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效) (2)WHERE子句中的连接顺序 (3)SELECT子句中避免使用 ‘ * ‘ (4)减少访问数据库的次数 (5)在SQL*Plu ...
- BitNami 里有好多开源软件
https://bitnami.com/stacks BitNami 提供wordpress.joomla.drupal.bbpress等开源程序的傻瓜式安装包下载,所有的安装包内置了服务器环境,就是 ...
- 每日英语:The Secret About Online Ad Traffic: One-Third Is Bogus
Billions of dollars are flowing into online advertising. But marketers also are confronting an uncom ...
- Erwin 生成 mysql 带注释(comment )的脚本
Erwin设计数据库非常方便,有逻辑视图和物理视图,可以很方便的生成数据库文档和SQL 脚本.在使用过程中唯一不爽的地方是脚本不能生成comment. 在百度无数次无法解决下,又FQ谷歌,在一个日 ...
- Oracle 数据库表同步方法浅议
总结一下Oracle数据库表级别的复制同步 一.通过触发器进行表的复制 原理,是监听表上都某一字段进行的DML操作,然后得到DML操作的数据,重新在另一个表上执行DML操作. 优点: 简单,编写一个触 ...