您的位置:首页 > 编程语言 > C#

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

2017-07-17 00:00 495 查看
最近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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OleDbCommand Access