我有一個 Access database2007 并嘗試使用下面顯示的代碼編輯內容。代碼無一例外地運行,但原始資料沒有改變。資料庫有一個主鍵 (ID) 和大約 20 列。使用相同的資料庫并使用 Adapter.Update(ds) 添加新行可以正常作業 - (此處未顯示)。現在我撰寫了一個最少的代碼來更改特定列 (=4) 中的內容以查看出了什么問題,但沒有顯示錯誤并且資料庫沒有更改。我將 VS 2019 用于 .exe 應用程式。
有什么建議有什么問題和/或如何解決嗎?/庫爾特J
Private Sub Button2_Click_(sender As Object, e As EventArgs) Handles Button2.Click
'testa att uppdatera databas
cnnT?vl = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" TPath AktT?vlNamn "_" AktT?vlDat ".mdb")
Dim strSQL = "Select * FROM Deltagare WHERE Patrull='12' AND Figur='01'"
Dim cmd As New OleDb.OleDbCommand(strSQL, cnnT?vl)
Dim Adapter As New OleDb.OleDbDataAdapter(cmd)
Dim ds As New DataSet
Dim cb As New OleDb.OleDbCommandBuilder(Adapter)
Stop
Try
cnnT?vl.Open()
Adapter.Fill(ds)
If ds.Tables(0).Rows.Count = 1 Then
ds.Tables(0).Rows(0).BeginEdit()
ds.Tables(0).Rows(0).Item(4) = "Bo Ek"
Else
MsgBox("No rows to edit")
cnnT?vl.Close()
Exit Sub
End If
cb.GetUpdateCommand()
Adapter.Update(ds)
Catch Er As Exception
MsgBox("Er= " Er.Message)
End Try
cnnT?vl.Close()
End Sub
uj5u.com熱心網友回復:
根據@LarsTech 的評論:
我從來沒有使用過配接器,但你有一個
BeginEdit()沒有相應的EndEdit().Adapter.Update(ds)應該回傳受影響的行數,所以不要忽略它。
EndEdit()解決了這個問題。我在網上看到的所有示例都沒有使用EndEdit(),但可能這些示例太舊了。
謝謝拉斯的幫助。
uj5u.com熱心網友回復:
連接和命令使用需要釋放的非托管資源。他們的Dispose方法就是這樣做的。Dispose必須呼叫該方法;幸運的是,我們有Using...End Using塊為我們處理這個問題并關閉連接。
您不需要使用 DataAdapter 和 DataSet 呼叫所有資料。直接更新就行了。
Private Sub Button2_Click_(sender As Object, e As EventArgs) Handles Button2.Click
'testa att uppdatera databas
Dim strSql = "Update Deltagare Set NameOf5thColumn = 'Bo Ek';"
Dim RecordsEffected As Integer
Using cnnT?vl = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" TPath AktT?vlNamn "_" AktT?vlDat ".mdb"),
cmd As New OleDb.OleDbCommand(strSql, cnnT?vl)
Debug.Print(cnnT?vl.ConnectionString)
Try
cnnT?vl.Open()
RecordsEffected = cmd.ExecuteNonQuery()
Catch Er As Exception
MsgBox("Er= " Er.Message)
End Try
End Using
If RecordsEffected = 1 Then
MessageBox.Show("Success!")
Else
MessageBox.Show("Failure!")
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/338098.html
標籤:网络 ms-access-2007 oledb数据适配器
