我试图定义一个数据方式来保存值,然后将它添加到dataset 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”,以避免BTW :使用new时出现的问题
Dim dr As New DataRow = dsdetails.Tables("details").NewRow
它显示了设计时的误差。
未定义“dsdetails.Tables”类型。
发布于 2014-01-01 13:58:24
试试下面的代码:
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
发布于 2014-01-01 20:36:12
如果只需将行从一个表复制到另一个表,则DataTable类具有可能要使用的复制方法。它的工作方式如下:
Dim dtCopy As New DataTable()
dtCopy = dt.Copy()
如果有绑定到表的datagridview控件,还可以使用以下表单:
Dim dtCopy As New DataTable()
dtCopy = DirectCast(dataGridViewX1.DataSource, DataTable).Copy()
复制方法将复制datatable结构和数据。如果只想复制没有数据的结构,可以使用克隆方法。
https://stackoverflow.com/questions/20869241
复制相似问题