操作ACCESS表的怪事情

zjsyw 2011-02-20 07:39:57
一段简单代码操作ACCESS表bm ,就两个字段:bm_id 自动增加的长整型,bm_name char(10)
表里就几条记录
bm_id bm_name
1 a
2 b
3 c
4 d
<1>string sql_string = "delete from bm where bm_id=3";
<2>string sql_string = "update bm set bm_name='aaa' where bm_id=2";
OleDbConnection olecon = DB.dbconnection();
try
{
olecon.Open();

OleDbCommand sqlcom = new OleDbCommand(sql_string, olecon);

sqlcom.ExecuteNonQuery();

sqlcom.Dispose();

}
catch (Exception ee)
{
Label1.Text = ee.Message;
}
finally
{
olecon.Close();
}


执行<1>是正常的,执行<2>不成功
百思不得其解
...全文
268 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjsyw 2011-03-01
  • 打赏
  • 举报
回复
谢谢大家,确定是我计算机上的ACCESS有问题或者系统数据访问组件有问题了,别的机器是好的,这两天我把CSDN密码给忘记了,一直试到今天才对,NND,结贴
xixihaha_2011_098 2011-02-21
  • 打赏
  • 举报
回复
具体是什么错误提示呀,
string sql_string = "update bm set bm_name='aaa' where bm_id=2";
单引号,是不是有问题呀
yalan 2011-02-21
  • 打赏
  • 举报
回复
按照你的环境我新建了个项目,没测试出代码有任何问题,检查一下数据库或者系统是否正常吧!
zfl2k 2011-02-21
  • 打赏
  • 举报
回复
没有任何问题,如果1能正常执行,2肯定能正常执行
zw198425 2011-02-20
  • 打赏
  • 举报
回复
update [bm] set bm_name='aaa' where bm_id=2 sql语句表要加[] access 操作sql语句不规范也可能执行不了
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
我在自己的机器上测试了一下,除了数据库名字不同外,其他基本都相同,有条件地更新成功。
说明应该是数据库有问题,或是.net底层引擎出问题。肯定不是程序代码问题。
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
版本和连接字符串也没问题啊。。。
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
我怀疑是我的ACCESS或者是什么地方有问题
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
明天上班用单位的机器试下,谢谢dalmeeme,明天结帖
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
我的ACCESS是2003的,帮朋友写个网页,连接字符串是string con_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|sddb.mdb";
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
你的Access是什么版本的,连接字符串是什么?
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
我在ACCESS里直接执行这条SQL也可以更新,晕,真是怪了
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
各位兄弟,难道我的ACCESS有问题?
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
去掉条件,UPDATE是可以全部更新的.另外我测试了传参数的办法,也不行.忘记说报错了,UPDATE时候不能执行成功,我捕捉到的错误是"OLE Automation 内部错误"
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
你把update的条件去掉,update bm set bm_name='aaa'
看看是否会更新全部记录。
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
我看错了,你的设置应该没问题。
wuyq11 2011-02-20
  • 打赏
  • 举报
回复
修改后数据是否正确,SQL语句是没问题的
zjsyw 2011-02-20
  • 打赏
  • 举报
回复
dalmeeme,被你说糊涂了.update bm set bm_name='aaa' where bm_id=3 条件bm_id=3的记录有的,bm_name字段是文本有10个长,存'aaa'也应该没问题,我还是不懂,能详细说说吗
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
哦,sorry,我看错了,条件是长整型的。
dalmeeme 2011-02-20
  • 打赏
  • 举报
回复
插入操作当然是没问题的,会自动填充空格的。但update要判断where条件,你的条件应该是不成立。
加载更多回复(8)

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧