首页 > 数据库技术 > 详细

WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题

时间:2019-04-30 13:20:01      阅读:120      评论:0      收藏:0      [点我收藏+]
原文:WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题

WPF窗体中建有一个DataGrid,运行后修改各行数据,通过Update方法更新后台数据库。发现在数据库中,其中一列FAcctID(文本型)每次都会变为0,还有一列FDebit(货币型)不能更新,其他列则没有问题。主要代码如下:

OleDbCommand cmdUpdateAcct = new OleDbCommand();
cmdUpdateAcct.Connection = conAcct;
cmdUpdateAcct.CommandText = "Update t_Voucher Set FDate=@FDate, FExp=@FExp, FAcctID=@FAcctID,FDebit=@FDebit, FCredit=@FCredit Where FID=@FID";

排查了好几个小时,对Xaml代码绑定、Parameter参数进行修改,均没有找到问题出在哪里。最后,注释掉该行代码,试着重新写SQL语句,一个字段一个字段地进行测试,却再没有出现这个问题。两行代码如下:

技术分享图片

从代码编辑器来看,两行代码一模一样。试着比较两行代码,提示不一致。最后粘贴到Word中观察,发现@FAcctID,FDebit=之间的逗号是一个全角逗号,但是在代码编辑器中全角逗号和半角逗号十分相似,没有Word中那么明显。

最终原因找到,原来是逗号惹的祸。因为FAccID对应的参数本来是【@FAccID】,却变成了【@FAccID,FDebit=@FDebit】,所以会更新成0;而另一个字段FDebit在SQL语句中找不到了(被当成了FAcctID的参数),自然就不会更新。

在此记载一下,以提醒自己今后注意。

WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题

原文:https://www.cnblogs.com/lonelyxmas/p/10795368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!