热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

C#中access数据库操作问题

在执行UPDATE和INSERT语句时,需要传入参数,例如这个dal层的操作:1publicstaticvoidModifyUserList(UserListuserList)2{3stringOleDbUPDATE+UserList+SET+4[UserName]@UserName,+5[Password]@Password+

在执行UPDATE和INSERT语句时,需要传入参数,例如这个dal层的 操作 : 1 public static void ModifyUserList(UserList userList) 2 { 3 string OleDb = " UPDATE " + " UserList " + " SET " + 4 " [UserName]=@UserName, " + 5 " [Password]=@Password " +

在执行UPDATE和INSERT语句时,需要传入参数,例如这个dal层的操作

 1 public static void ModifyUserList(UserList userList)
2 {
3 string OleDb ="UPDATE "+"UserList "+"SET "+
4 "[UserName]=@UserName, "+
5 "[Password]=@Password "+
6 " WHERE [ID]=@ID";
7 try
8 {
9 OleDbParameter[] para = new OleDbParameter[]
10 {
11
12 new OleDbParameter("@UserName",userList.UserName),
13 new OleDbParameter("@Password",userList.Password),
14 new OleDbParameter("@ID",userList.ID)
15
16 };
17 DBHelper.ExecuteCommand(OleDb, para);
18 }
19 catch (Exception e)
20 {
21 Console.WriteLine(e.Message);
22 throw e;
23 }
24 }

起初insert和update的语句都不成功,抛出异常说语法错误,后来在网上看了一些网友的提问和回答,程序中存在这两个错误:

1.字段名与ACCESS关键字冲突,需要在字段名前加方括号“[]”(导致程序抛出异常)

2.参数顺序不对,ACCESS要求参数组中参数的顺序和sql语句中参数出现的顺序一致(程序会正常执行,但是语句执行返回的影响行数却总是0)

我起初按1修改,程序不再抛出异常但是执行后数据库没有变化,然后我又按2调整了参数的顺序,顺利修改了数据库的值。

我的问题是:

1.我的表字段的三个名字是ID,Password,UserName,我查了ACCESS的保留字,这三个名字都不是关键字为什么还会抛出异常?

2.关于ACCESS要求参数组中参数的顺序和sql语句中参数出现的顺序一致这个问题,是ACCESS数据库的特殊限制,还是微软的.NET类库在ACCESS访问这方面没有做好??

推荐阅读
author-avatar
haiziqian_486_834
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有