使用VB.NET更新访问记录集
问题描述:
如何使用VB.NET更新MS-Access记录集?使用VB.NET更新访问记录集
我基本上已经更新了id为1的字段,并且'ticker'的字段值是'UKX'。
要更新的数据位于“值”字段中,并且来自Public Sub。 dLast是我需要输入的数据来更新当前值。
目前我已经得到了代码:
Function update_db()
' need to update the database
Dim daoengine As DAO.DBEngine
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
daoengine = New DAO.DBEngine
dbs = daoengine.OpenDatabase("Project.mdb")
rst = dbs.OpenRecordset("ftsedata", DAO.RecordsetTypeEnum.dbOpenDynaset)
rst.Edit()
' what do I do here to edit the field "value" where ticker=UKX ?
rst.Close()
dbs.Close()
End Function
Public Sub getftsestock()
Dim sAPIUrl As String = "http://www.google.com/ig/api?stock=UKX"
Dim oDocument As XDocument = XDocument.Load(sAPIUrl)
Dim dLast As Double = CDbl(GetData(oDocument, "last"))
End Sub
答
首先,改变你的子成一个函数,像这样
Public function getftsestock() as double
Dim sAPIUrl As String = "http://www.google.com/ig/api?stock=UKX"
Dim oDocument As XDocument = XDocument.Load(sAPIUrl)
getftsestock = CDbl(GetData(oDocument, "last"))
End Sub
然后做您的更新这样
rst = dbs.OpenRecordset("select * from ftsedata where (ticker='UKX')", DAO.RecordsetTypeEnum.dbOpenDynaset)
while not rsy.eof
rst.Edit
rst("value").value = getftsestock()
rst.update
rst.movenext
wend
rst.Close()
然而,这样做会更有效率。
daoengine.Execute "Update ftsedata SET value='" & getftsestock() & "' WHERE ticker='UKX'"
答
您必须调用数据库对象的Execute方法。
daoengine.Execute "Update TableName set Col1=Value1 Where Ticker='UKX'"
你应该使用ADO.NET Oledb
提供商,而不是DAO
在VB.NET。
我将如何应用来自getftsetock()的dLast的值? – bear 2012-01-11 01:19:54
@shamil看到我更新的答案。 – JohnFx 2012-01-11 01:31:44
啊,非常感谢 - 清除了 - 不知道它是以这种方式存储的。 VB2008Express喜欢删除我的Set关键字。我会让他们回来。 – bear 2012-01-11 01:33:55