datagridview当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。
以下是一個網友的問題,我也遇到了,記得在?更新前? Me.Contract_DesDA.Update(Me.ds.Tables("合同內容列表"))
要 Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(Contract_DesDA)
經測試,數據庫定義了主鍵,在ds里面沒必要像下文再定義了
~~~~~~~~~~~~~~~~~~
?
運行時,在datagridview中修改數據,然后點擊Button1,預期結果:更新數據到Access,實際結果:提示"當傳遞具有已修改行的DataRow集合時,更新要求有效的UpdateCommand"
另外說明一下:1 使用的是Access 2003? 2.tContract_Des這張表中已經設置主鍵了。
代碼補齊如下:
======================================
Option? Strict? On
Imports? System.Data.OleDb
Public? Class? Form1
? ? ? ? Private? ds? As? New? DataSet? ? '? 數據集對象的類別層級建立
? ? ? ? Private? cnnStringBuilder? As? New? OleDbConnectionStringBuilder()? ? ? '? 利用? OleDbConnectionStringBuilder? 對象來構建連接字符串。
? ? ? ? Private? cn? As? OleDbConnection
? ? ? ? Private? Contract_DesDA? As? OleDbDataAdapter
? ? ? ? Private? cmContract_Des? As? String
? ? ? ? Private? Sub? Form1_Load(ByVal? sender? As? System.Object,? ByVal? e? As? System.EventArgs)? Handles? MyBase.Load
? ? ? ? ? ? ? ? cnnStringBuilder.DataSource? =? "F:\外貿\test.mdb"
? ? ? ? ? ? ? ? cnnStringBuilder.Provider? =? "Microsoft.Jet.OLEDB.4.0"
? ? ? ? ? ? ? ? cmContract_Des? =? "SELECT? *? FROM? tContract_Des"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? cn? =? New? OleDbConnection(cnnStringBuilder.ConnectionString)
? ? ? ? ? ? ? ? Contract_DesDA? =? New? OleDbDataAdapter(cmContract_Des,? cn)
? ? ? ? ? ? ? ? Contract_DesDA.Fill(ds,? "合同內容列表")
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? Dim myPIColArray(1) As DataColumn? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? myPIColArray(0) = ds.Tables("合同內容列表").Columns("Contract_Des_ID")
? ? ? ? ? ? ? ? ds.Tables("合同內容列表").PrimaryKey = myPIColArray
? ? ? ? ? ? ? ? Me.BindingSource1.DataSource? =? ds.Tables("合同內容列表")
? ? ? ? ? ? ? ? Me.DataGridView1.DataSource? =? Me.BindingSource1
? ? ? ? End? Sub
? ? ? ? Private Sub btnUpdate_Click(ByVal? sender? As? System.Object,? ByVal? e? As? System.EventArgs)? Handles? Button1.Click
? ? ? ? ? ? Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(Contract_DesDA)
? ? ? ? ? ? ? Me.Contract_DesDA.Update(Me.ds.Tables("合同內容列表"))
? ? ? ? End? Sub
End? Class
?
http://topic.csdn.net/u/20071209/15/d9b0ddc9-de7b-40c7-ae58-7a7a584a28a2.html
======================================
轉載于:https://www.cnblogs.com/yzy666/archive/2010/02/25/1673785.html
總結
以上是生活随笔為你收集整理的datagridview当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何开始创业
- 下一篇: CAD—定义委托异步添加实体