您好,欢迎访问一九零五行业门户网

C#中access数据库操作问题

在执行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访问这方面没有做好??
其它类似信息

推荐信息