急,OLEAdapter.update

blasterboy 2004-06-28 03:54:43
Public Function FG_TrueDBSelect(ByVal strSQL As String) As Data.DataTable

Dim ds As New DataSet
conn.Open()
adapter.SelectCommand = New OleDbCommand(strSQL, conn)
System.Threading.Thread.Sleep(500)
adapter.FillSchema(ds, SchemaType.Source, "table1")
adapter.Fill(ds, "table1")

'如果把更新的操作放在这里,是可以的
Dim oCommandBuilder As New OleDbCommandBuilder(adapter)
ds.Tables("table1").Rows(1)("check") = -1
adapter.DeleteCommand = oCommandBuilder.GetDeleteCommand
adapter.InsertCommand = oCommandBuilder.GetInsertCommand
adapter.UpdateCommand = oCommandBuilder.GetUpdateCommand
'Apply the updates
adapter.Update(ds, "table1")
conn.Close()

Return ds.Tables("table1")

End Function

如果单独提炼出来,做个函数,那么更新,就不可以了
不知道为什么
Public Sub FG_TrueDBUpdate(ByRef dt As DataTable)
Try
conn.Open()

Dim oCommandBuilder As New OleDbCommandBuilder(adapter)

dt.Rows(1)("check") = -1
adapter.DeleteCommand = oCommandBuilder.GetDeleteCommand
adapter.InsertCommand = oCommandBuilder.GetInsertCommand
adapter.UpdateCommand = oCommandBuilder.GetUpdateCommand
'Apply the updates
adapter.Update(dt)
'adapter.Update(ds.Tables("table1"))
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub
...全文
197 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
blasterboy 2004-07-02
  • 打赏
  • 举报
回复
中午揭帖把,我觉得没什么希望了,我单开一个帖子,给大家分吧
roking 2004-07-02
  • 打赏
  • 举报
回复
跟踪一下代码,在OnRowUpdating事件中测试一下各变量的值!
水如烟 2004-07-01
  • 打赏
  • 举报
回复
adapter.DeleteCommand = oCommandBuilder.GetDeleteCommand
adapter.InsertCommand = oCommandBuilder.GetInsertCommand
adapter.UpdateCommand = oCommandBuilder.GetUpdateCommand
如果不对有关的CommandText作修改的话,上面三行就没必要了

(不过对你的问题解决没半点关系)
blasterboy 2004-07-01
  • 打赏
  • 举报
回复
帮忙啊,不会大家都不会把,可怜可怜我把!
水如烟 2004-07-01
  • 打赏
  • 举报
回复
是不是这样
conn.Open()需要时间,前面的你不是System.Threading.Thread.Sleep(500)吗
这个地方也写上这样吧
blasterboy 2004-07-01
  • 打赏
  • 举报
回复
还有为什么我多点击几次就可以了?
天哪!微软的东西不可能这样吧
blasterboy 2004-07-01
  • 打赏
  • 举报
回复
Table.GetChanged不是nothing 阿 :(
wwwho 2004-07-01
  • 打赏
  • 举报
回复
如果你多点击几次能删除,我怀凝是你的数据被删除后没有及时被更新造成,这也只是我的猜测。
水如烟 2004-07-01
  • 打赏
  • 举报
回复
呵,可能是一时兴起脱口的,可能还是不知道原因
adapter.Update(table)其实是对Table.GetChanged的部分进行更新
如果Table.GetChanged是Nothing的话,肯定是不会有什么动作的
你跟踪一下,看看它是不是Nothing
水如烟 2004-07-01
  • 打赏
  • 举报
回复
老天,我知道你问题的原因了
blasterboy 2004-07-01
  • 打赏
  • 举报
回复
大家就可怜可怜我把,救救我把!
521kevin 2004-07-01
  • 打赏
  • 举报
回复
关注
blasterboy 2004-06-30
  • 打赏
  • 举报
回复
自己在顶一下吧,大家都开开金口,帮帮忙吧
blasterboy 2004-06-30
  • 打赏
  • 举报
回复
我的两个方法
Public Sub FG_TrueDBUpdata2(ByRef table As DataTable)
Try
conn.Open()
adapter.DeleteCommand = oCommandBuilder.GetDeleteCommand
adapter.InsertCommand = oCommandBuilder.GetInsertCommand
adapter.UpdateCommand = oCommandBuilder.GetUpdateCommand
adapter.Update(table)
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Public Sub FG_TrueDBSelect2(ByVal strSQL As String, ByRef table As DataTable)
conn.Open()
adapter.SelectCommand = New OleDbCommand(strSQL, conn)
System.Threading.Thread.Sleep(500)

adapter.FillSchema(table, SchemaType.Source)
adapter.Fill(table)
conn.Close()

End Sub

第一个是用来update的,第二个用来fill的,大家帮我看看,我觉得是不是微软的一个bug :(
lzyang 2004-06-30
  • 打赏
  • 举报
回复
呵呵,好象用update 一定要有InserCommand 才能执行,不知道是不是bug
blasterboy 2004-06-30
  • 打赏
  • 举报
回复
自己在顶巴
真的没有办法了
ttcat 2004-06-29
  • 打赏
  • 举报
回复
我有用,如果是修改原记录,update可以;可以不知道为什么,如果是删除某条记录,调用update之后并没有实际删除掉:(谁知道帮我一下啊。
blasterboy 2004-06-29
  • 打赏
  • 举报
回复
没有人知道吗?还是没有人用update这个函数:(
水如烟 2004-06-29
  • 打赏
  • 举报
回复
呵,你知道的,我是无能为力的了
帮你顶
blasterboy 2004-06-29
  • 打赏
  • 举报
回复
难道没有人会吗:(
加载更多回复(6)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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