以下问题都是容易忽略,但却不容易找出问题的所在,让我头疼不少,故在此列出,即是一个总结,同样也给其他人参与!
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' -->这是正确的,显示说明非系统保留字
