Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 数据行变量分配给数据集';s表纽罗_Vb.net_Visual Studio 2012_Dataset_Datarow - Fatal编程技术网

Vb.net 数据行变量分配给数据集';s表纽罗

Vb.net 数据行变量分配给数据集';s表纽罗,vb.net,visual-studio-2012,dataset,datarow,Vb.net,Visual Studio 2012,Dataset,Datarow,我试图定义一个数据行来保存值,然后将其添加到数据集中 indgv:datagridview,其中包含值 dsdetails:具有名为details的表的数据集 If indgv.Rows.Count > 0 Then Dim dr As DataRow dr = dsdetails.Tables("details").NewRow For Each row As DataGridViewRow In indgv.Row

我试图定义一个数据行来保存值,然后将其添加到数据集中 indgv:datagridview,其中包含值 dsdetails:具有名为details的表的数据集

If indgv.Rows.Count > 0 Then
            Dim dr As DataRow
            dr = dsdetails.Tables("details").NewRow
            For Each row As DataGridViewRow In indgv.Rows
                dr("mat") = row.Cells("icode").Value
                dr("dateoftrans") = Me.DateTimePicker1.Value
                dr("numoftrans") = transnum.Text
                dr("type") = 1
                dr("doc") = doctyp.SelectedValue
                dr("amount") = row.Cells("iamo").Value
                dsdetails.Tables("details").Rows.Add(dr)
            Next
            adpdetails.Update(dsdetails, "details")
        End If
运行此命令会导致以下错误

对象引用未设置为对象的实例

如何用“New”重新表述声明以避免问题 顺便说一句:当使用new时,如下所示

Dim dr As New DataRow = dsdetails.Tables("details").NewRow
它显示了设计时间误差

未定义类型“dsdetails.Tables”

请尝试以下代码:

If indgv.Rows.Count > 0 Then

    Dim tbl As DataTable = dsdetails.Tables("details")
    Dim dr As DataRow

    For Each row As DataGridViewRow In indgv.Rows

        dr = tbl.NewRow 'Create a new row inside the loop!
        dr("mat") = row.Cells("icode").Value
        dr("dateoftrans") = Me.DateTimePicker1.Value
        dr("numoftrans") = transnum.Text
        dr("type") = 1
        dr("doc") = doctyp.SelectedValue
        dr("amount") = row.Cells("iamo").Value

        tbl.Rows.Add(dr)

    Next

    adpdetails.Update(tbl)

End If

若您只需要将行从一个表复制到另一个表,那个么DataTable类有一个您可能想要使用的复制方法。它的工作原理如下:

Dim dtCopy As New DataTable()
dtCopy = dt.Copy()
如果将datagridview控件绑定到表,还可以使用以下表单:

Dim dtCopy As New DataTable()
dtCopy = DirectCast(dataGridViewX1.DataSource, DataTable).Copy()
该方法将复制datatable结构和数据。
如果只想复制结构,而不复制可以使用方法的数据。

感谢您的回答,行中的数据是混合字段:一些来自数据网格,一些来自表单控件。