数据UPDATE的问题,各位朋友帮忙看一下!

JERRY_LIU 2004-05-05 11:01:13

更新数据时出现下面错误提示:

“对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态SQL生成”
代码如下:
Dim changeds As New DataSet()
changeds = oledbds.GetChanges
If Not changeds Is Nothing Then
MsgBox(changeds.GetXml, MsgBoxStyle.Information, "DATA Change is :")

End If
Dim combuilder As New OleDbCommandBuilder(oledbda)
Try
oledbda.Update(oledbds.Tables("mat_inout")) ‘执行到这句出错
Catch err As OleDbException
MsgBox(err.Message)
Catch err2 As Exception
MsgBox(err2.Message)
End Try

各位高手帮忙看一下,哪里的问题 ?
...全文
46 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rock29 2004-05-06
1 不需要加别的东东
2 标准写法是combuilder.RefreshSchema()完了之后再用oledbda.fill(ds)
3 既然oledbda.updatecommand 为nothing,说明你没有oledbda.updatecommand语句,所以你应该检查oledbda的定义之处,一般定义为:Dim oledbda As New OleDataAdapter("Select * From ...", Connection).所以你在此处设定断点,先察看oledbda,如果有再看combuilder.getupdatecommand<肯定是没有拉>,再琢模你怎么定义的吧
  • 打赏
  • 举报
回复
JERRY_LIU 2004-05-06
现在我的数据库里面是有加主键的。
按照ROCK29的说法,添加 combuilder.RefreshSchema() 还是在UPDATE时提示 “UPDATE语法错误”

在监视窗口测得 oledbda.updatecommand 为nothing

是否前面的Imports 需要引用除 system.data.oledb以外其它呢?
  • 打赏
  • 举报
回复
rock29 2004-05-06
1.表中没设主键是不行的
2.Dim combuilder As New OleDbCommandBuilder(oledbda)
combuilder.RefreshSchema()
  • 打赏
  • 举报
回复
JERRY_LIU 2004-05-06
各位高手,帮帮忙解决一下啦!~
  • 打赏
  • 举报
回复
accpzj 2004-05-05
表中没设主键是不行的
  • 打赏
  • 举报
回复
chinahth 2004-05-05
你加个主键试试
  • 打赏
  • 举报
回复
JERRY_LIU 2004-05-05
TO: ZAG
更新数据时出现下面错误提示:

“对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态SQL生成”
  • 打赏
  • 举报
回复
zag 2004-05-05
出错信息是什么内容?
  • 打赏
  • 举报
回复
JERRY_LIU 2004-05-05
TO: wangsaokui 我的表中并无主键

TO: orswanic 我是用以下方式来连接的,在UPDATE时,并未另外写入SELECTCOMMAND,是系统自已产生的。

oledbcn = New OleDbConnection("provider = microsoft.jet.oledb.4.0;data source=f:\test\mis_net\misnet\database\mis.mdb")
oledbda = New OleDbDataAdapter(" select * from mat_inout", oledbcn)
oledbds = New DataSet()
oledbda.Fill(oledbds, "mat_inout")
DataGrid1.DataSource = oledbds.Tables("mat_inout")
  • 打赏
  • 举报
回复
orswanic 2004-05-05
我想是因为你用CommandBuilder根据SelectCommand自动生成了其他Command对象,但对于有些SQL的SELECT语句,CommandBuilder不能很好的生成。
所以问题的主要原因应该是你SelectCommand当时的SQL语句。
  • 打赏
  • 举报
回复
wangsaokui 2004-05-05
或者select中是否包含主键
  • 打赏
  • 举报
回复
wangsaokui 2004-05-05
表中是否有主键
  • 打赏
  • 举报
回复
JERRY_LIU 2004-05-05
另外加一个主键字段后,UPDATE会提示 “UPDATE语句错误!”

郁闷中。。。
  • 打赏
  • 举报
回复
orswanic 2004-05-05
既然如此那你给表加个主键吧,还不行再说。。
  • 打赏
  • 举报
回复
相关推荐
发帖
VB
加入

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
申请成为版主
帖子事件
创建了帖子
2004-05-05 11:01
社区公告
暂无公告