错误笔记:在OleDb执行下Access ,程序不报错,但是Update也更新不成功的

简介:

   由于最近一个小项目,用户指定要Access,所以没发,只得Access了。显然采用OleDb那连接。在今天的开发过程中,遇见了一个问题:

 问题:      

         dal层的数据sql采用参数化形式,在Access数据库查询界面执行时候,没有错误,执行正常。但是在程序执行,就会出现程序不报任何错误,但是Update不成功,受影响的行数为0.    

       在我网上查询了许久,http://blog.sina.com.cn/s/blog_4668898b010008io.html OLEDB传递参数给Access要注意的问题)

解决: 

    其实问题病因在于:你的sql里面参数顺序和在oledb参数添加的顺序不一致。ok。我原来的code  注意:UserIdentity的出现位置。

我原来的code:

 注意:UserIdentity的出现位置。

 
  1. 代码   
  2.  
  3.     string sql = @"update UserInfo set   
  4. [RoleID] = @RoleID,  
  5. [UserName] = @UserName,  
  6. [PWD] = @PWD,  
  7. [Email] = @Email  
  8. where [UserIdentity] = @UserIdentity ";  
  9.  
  10.             DbCommand cmd = dbHelper.GetSqlStringCommond(sql  
  11.                 );  
  12.             dbHelper.AddParameterCollection(cmd,  
  13.                 new OleDbParameter("UserIdentity"user.UserIdentity),//注意UserIdentity放置位置  
  14.                 new OleDbParameter("RoleID"user.RoleID),  
  15.                 new OleDbParameter("UserName"user.UserName),  
  16.                 new OleDbParameter("PWD"user.PWD),  
  17.                 new OleDbParameter("Email"user.Email)  
  18.                    
  19.                 ); 

修改后的Code(运行成功):

 

 
  1. 代码   
  2. string sql = @"update UserInfo set   
  3. [RoleID] = @RoleID,  
  4. [UserName] = @UserName,  
  5. [PWD] = @PWD,  
  6. [Email] = @Email  
  7. where [UserIdentity] = @UserIdentity ";  
  8.  
  9.             DbCommand cmd = dbHelper.GetSqlStringCommond(sql  
  10.                 );  
  11.             dbHelper.AddParameterCollection(cmd,  
  12.                   
  13.                 new OleDbParameter("RoleID"user.RoleID),  
  14.                 new OleDbParameter("UserName"user.UserName),  
  15.                 new OleDbParameter("PWD"user.PWD),  
  16.                 new OleDbParameter("Email"user.Email),  
  17.                 new OleDbParameter("UserIdentity"user.UserIdentity)//注意UserIdentity放置位置  
  18.                    
  19.                 ); 





本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/834757 ,如需转载请自行联系原作者

相关文章
|
JavaScript
Vue2使用全局函数或变量的两种常用方式
这篇文章介绍了在Vue 2项目中实现全局函数或变量的两种常用方式:一种是通过挂载到Vue的`prototype`,另一种是使用Vue的全局混入(Vue.mixin)。
1432 0
Vue2使用全局函数或变量的两种常用方式
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
1850 1
|
人工智能 数据挖掘 Python
💡灵感爆发!AI Prompt创意引导,让商业数据分析报告也能讲故事
【8月更文挑战第1天】在商业领域, 数据分析报告常被视为枯燥的数据堆砌。但AI技术, 尤其是AI Prompt的创意引导功能, 正革新数据呈现方式。传统报告重准确性轻生动性; 而AI Prompt创意引导下的报告则如电影般, 通过故事化叙述使复杂洞察变得生动有趣。例如分析电商平台季节性销售时, AI Prompt可以生成主题为“穿越四季购物之旅”的创意指令, 将数据编织成引人入胜的故事篇章, 使读者不仅能获取商业洞察, 更能感受到数据背后的情感与温度, 大大提升报告的吸引力和传播力。这标志着数据分析报告新时代的到来。
303 0
|
Java 编译器 Serverless
Java 原生化的未来 Graal AOT 编译器
使用 Graal 编译器对 Java 程序进行 AOT 编译使其适合 Serverless 场景。
407 0
Java 原生化的未来 Graal AOT 编译器
|
存储 人工智能 弹性计算
解决方案评测|通义万相AI绘画创作测评
解决方案评测|通义万相AI绘画创作测评
1202 12
|
机器学习/深度学习 自然语言处理 语音技术
ChatGPT高效提问—基础知识(LM、PLM以及LLM)
ChatGPT高效提问—基础知识(LM、PLM以及LLM)
331 0
|
安全 数据管理 区块链
论述区块链的类型
【7月更文挑战第14天】论述区块链的类型
888 4
|
机器学习/深度学习 数据采集 算法
【机器学习】线性回归:以房价预测为例
【机器学习】线性回归:以房价预测为例
1133 1