以下问题都是容易忽略,但却不容易找出问题的所在,让我头疼不少,故在此列出,即是一个总结,同样也给其他人参与!

1.使用参数形式执行SQL命令时,参数数组需与在SQL语句中参数名出现的位置及名称必须完全相同,否则执行不成功,但不会报错;

sql=”insert table(a,b,c) values(@a,@b,@c)”

params={@a,@c,@b} —>这是错误的

params={@a,@b,@c} —>这是正确的

以下问题都是容易忽略,但却不容易找出问题的所在,让我头疼不少,故在此列出,即是一个总结,同样也给其他人参与!

1.使用参数形式执行SQL命令时,参数数组需与在SQL语句中参数名出现的位置及名称必须完全相同,否则执行不成功,但不会报错;

sql=”insert table(a,b,c) values(@a,@b,@c)”

params={@a,@c,@b}  —>这是错误的

params={@a,@b,@c}  —>这是正确的

 

2.使用参数形式执行SQL命令时,当字段类型为时间类型时,需要显形声明参数类型为Date,不能采用参数名+值的形式

sql=”update table set editdate=@dt”

param=new oledbparameter(“@dt”,DateTime.Now)  –>这是错误的,执行时会报错:标准表达式中数据类型不匹配

param=new oledbparameter(“@dt”,OleDbType.Date){Value=DateTime.Now} –>这是正确的

 

3.注意ACCESS数据库保留字,尽量不要使用该类字作为字段名,若确实需要使用,则应该加上方括号,显示说明

sql=”update user set name=\’xxx\'”  –>这是错误的

sql=”update [user] set [name]=\’xxx\'”  –>这是正确的,显示说明非系统保留字

版权声明:本文为zuowj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zuowj/p/3406758.html%20