操作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>不成功
百思不得其解
...全文
349 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjsyw 2011-03-01
  • 打赏
  • 举报
回复
谢谢大家,确定是我计算机上的ACCESS有问题或者系统数据访问组件有问题了,别的机器是好的,这两天我把CSDN密码给忘记了,一直试到今天才对,NND,结贴
老董杂货铺 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)
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

111,129

社区成员

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

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

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