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。相关推荐
- Tabulator javascript data grid数据表格控件检测已修改行数据
Tabulator 可以通过table.getEditedCells()获得编辑修改过的单元格,在通过单元格的getRow()函数获得行对象,让后通过行对象的.getData()函数获得编辑修改过行数 ...
- HDU 2152 选课时间(题目已修改,注意读题) (母函数)
选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU-2079 选课时间(题目已修改,注意读题) -母函数
选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 48道C语言上机题参考答案,二级C语言上机题库参考答案(已修改).doc
二级C语言上机题库参考答案(已修改).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印 ...
- 怎么回事儿?C#错误:集合已修改;枚举操作可能无法执行。
本意是遍历表的行,当行中"主键"列为""时,将该行从表中删除.执行时就出现了"集合已修改:枚举操作可能无法执行."的c#错误提示.c#错误代 ...
- C# DataGridView控件动态添加新行
目录 方法一: 方法二: ① DataGridView 取得或者修改当前单元格的内容: ② DataGridView 设定单元格只读: ③ DataGridView 不显示最下面的新行: ④ Data ...
- pandas使用itertuples函数迭代dataframe中的数据行并自定义修改行中的数值(update row while iterating over the rows)
pandas使用itertuples函数迭代dataframe中的数据行并自定义修改行中的数值(update row while iterating over the rows in datafram ...
- 集合已修改;可能无法执行枚举操作。
问题描述:在用foreach遍历hashtable的时候,弹出"集合已修改:可能无法执行枚举操作." 问题代码: private void Check(int TimeOut) ...
- sublime自定义主题-修改行号的颜色
打开以下链接: http://tmtheme-editor.herokuapp.com/#!/editor/theme/Cobalt 找到自己当前使用的主题,然后点击页面最下方的+号即可. 中間的下方 ...
最新文章
- linux开发板蓝牙连接,开发板蓝牙通信问题,有这方面经验的请进
- 使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈
- iOS内存管理(ARC,MRC)
- (原)离开,只为更好的活着
- 《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
- C#中static void Main(string[ ] args)中的作用及解释
- 端到端测试_端到端测试的滥用–测试技术2
- pytorch 如何将张量、类实例、函数放到GPU上
- SQL server连接数据库
- 软件设计师历年真题常错的题加解析——上午题
- raid数据恢复案例之:服务器Raid5磁盘阵列数据恢复过程
- 谷歌浏览器Google Chrome如何在打开新标签页时设置指定网址
- java台球游戏_java桌球小游戏项目
- DES子密钥计算具体步骤
- 快速破解专业操盘手核心机密(全套)
- 关于移动端适配100vh的问题
- pytorch loss反向传播出错
- DFS【古希腊之争(一)】
- dbg 寻找main函数
- cocos2d带冷却的菜单按钮封装
热门文章
- 2.4g和5g要不要合并_2.4 序列之字符串
- parent winform 位置_winform 弹出窗体指定位置
- 服务器响应时延,服务器响应时延
- 包区别 版本_详解Linux下二进制包、源代码包、rpm包区别与联系
- Property ‘configuration‘ and ‘configLocation‘ can not specified with together
- 014_SpringBoot视图层技术thymeleaf-访问域对象
- python中randn函数_numpy常用函数之randn
- Android开发常用开源框架3
- ping连接linux无法访问目标主机,无法访问目标主机是什么情况【解决方法】
- 配置tomcat的环境变量