C# 访问Access使用参数时注意事项

最近C#开发数据库应用程序,使用Access数据库,遇到一些问题,在这里记录以备查询。

1、OleDbCommand访问Access时,如果在SQL语句中使用参数,要注意使用正确的占位符“?”,而不是@名称。

2、向OleDbCommand的参数集Parameters中加入参数时,要按照占位符先后顺序添加。

3、给Access数据库中日期/时间类型字段更新数据时,应该用字符串类型参数,而不是DateTime类型,否则会出现类型不匹配的错误。

4、使用OleDbDataReader时,建议使用using语句。否则要记得用完后关闭,否则可能出现错误提示“ 已有打开的与此命令相关联的 DataReader,必须首先将它关闭 ”。

实例说明:

​cmd.Parameters.Clear();//如果在之前OleDbCommand已经使用了参数,这里一定要清除
cmd.CommandText =
  "insert into SeoToolPcInfo(uid,pcstr,buildver,LoginCount,LastLoginDate) values (?,?,?,1,?)";
cmd.Parameters.AddWithValue("@uid", user.UserName);//参数名称@uid在这里类似注释,没有实际意义
cmd.Parameters.AddWithValue("?", user.MachineID);
cmd.Parameters.AddWithValue("?",user.ClientVersion);
cmd.Parameters.AddWithValue("?", 
  DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//日期/时间字段参数也要用字符串
//cmd.Parameters.AddWithValue("?",DateTime.Now);//不能DateTime类型,会报错
cmd.ExecuteNonQuery();

 

转载于:https://my.oschina.net/u/2357619/blog/1446663

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值