Foxtable(狐表)用户栏目专家坐堂 → System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。


  共有5443人关注过本帖树形打印复制链接

主题:System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。

帅哥哟,离线,有人找我吗?
cnsjroom
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。  发帖心情 Post By:2022/12/7 16:36:00 [只看该作者]

Dim Products As List(Of String)
Products =  DataTables("登记台账").GetValues("guid")
For Each Product As String In Products
    Output.Show(Product)
    Dim dr1 As DataRow = DataTables("登记台账汇总表").AddNew
    For Each dc As DataCol In DataTables("记台账").DataCols
        For Each dr As DataRow In DataTables("登记台账").datarows
            dr1(dc.Name) = dr(dc.Name)  
        Next
    Next
    dr1.save
Next

 

 

当前代码:【将上述正常使用的表用SQL与进行操作时,提示如下错误】

Dim cmd As New SQ LCommand
Dim dt,dt1,dt2 As DataTable
cmd.Conne ction Name = "主数据源"
cmd.Comm andText = "Selec t * From 登记台账"
Dim dt111 As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Sele ct * From 登记台账汇总表"
Dim dt112 As DataTable = cmd.ExecuteReader()
Dim Products As List(Of String)
Products =  dt111.GetValues("guid")
For Each Product As String In Products
    Output.Show(Product)
    Dim dr1 As DataRow = dt112.AddNew
    For Each dc As DataCol In dt111.DataCols
        For Each dr As DataRow In dt111.datarows
            dr1(dc.Name) = dr(dc.Name)  
        Next
    Next
    dr1.save
Next

 

 

错误的事件名称
System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。
2022-12-07 16:33:09


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/7 16:58:00 [只看该作者]

Dim dt112 As DataTable = cmd.ExecuteReader(true)

示例五

ExecuteReader有一个可选参数,如果设置为True,那么生成的DataTable不仅可以增加、删除和修改数据,还可以保存。
新建一个文件,在命令窗口测试下面的代码,会在A的第一行的第一列写入123,并删除第二行:

Dim cmd As new SQLCommand
cmd
.ConnectionName = "数据源名称"
Dim
 dt As DataTable
cmd
.CommandText = "Select * From {表A}"
dt
 = cmd.ExecuteReader(True'记得将参数设置为True
dt
.DataRows(0)("第一列") = 123
dt
.DataRows(1).Delete()
dt
.Save()
DataTables
("表A").Load() '重新加载表A,看看值是否已经变化


 回到顶部