以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=184443)

--  作者:cnsjroom
--  发布时间:2022/12/7 16:36:00
--  System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,Update 要求有效的 InsertCommand。

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


--  作者:有点蓝
--  发布时间: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,看看值是否已经变化