【发布时间】:2014-09-01 17:11:47
【问题描述】:
我正在做一个项目,我必须将 Datagridview 添加的行保存在数据库中,保存记录后我想清除 Datagridview,这是我用来实现它的代码
Public Sub ClearGrid(ByRef gd As DataGridView)
gd.Columns.Clear()
gd.Rows.Clear()
gd.DataSource = Nothing
End Sub
这段代码清除了Datagridview中的行和列,但是当我添加另一行并再次保存时,之前添加的记录会再次保存,新添加的记录也会被保存
我也尝试创建 Datagridview myGrid = new Datagridview 的新实例,然后清除行和列,但结果相同
我正在从数据库中填充 DataTable 并使用此代码将 rom 添加到 Datagridview
With MyDataTable.Rows(0)
Dim row As String() = New String() _
{.ItemArray(0).ToString(), .ItemArray(1).ToString(), _
.ItemArray(1).ToString(), .ItemArray(3).ToString(), _
.ItemArray(4).ToString(), .ItemArray(5).ToString(), _
.ItemArray(6).ToString(), .ItemArray(7).ToString(), _
.ItemArray(8).ToString(), .ItemArray(9).ToString(), _
.ItemArray(10).ToString(), .ItemArray(11).ToString(), _
.ItemArray(12).ToString()}
myGrid.Rows.Add(row)
End With
【问题讨论】:
-
如果您的 DGV 使用数据源,请清除其中的数据,而不是 DGV 行。尝试这样做通常会导致崩溃。
-
@Pluonix : 请检查已编辑的问题
-
你正在疯狂地混合和匹配类型。无论您给它起什么名称,字符串数组都不是 DataGridViewRow。
MyDataTable在其中扮演什么角色?如果它是 DGV 的数据源,您应该从中添加(和删除)它,而不是 DGV。如果它使用数据源,则 DGV 只是用户查看数据的查看器。立即开启 Option Strict。
标签: vb.net winforms datagridview