如何在VB.Net中向DataGridView控件添加新记录?
我不使用数据集或数据库绑定。 我有一个小窗体,其中包含3个字段,当用户单击“确定”时,它们应该被添加到DataGridView控件作为新行。
如何在VB.Net中向DataGridView控件添加新记录?
我不使用数据集或数据库绑定。 我有一个小窗体,其中包含3个字段,当用户单击“确定”时,它们应该被添加到DataGridView控件作为新行。
如果您想将行添加到网格的末尾,请使用Rows集合的Add()方法...
DataGridView1.Rows.Add(New String(){Value1, Value2, Value3})
如果你想在特定位置插入行,请使用行集合的Insert()方法(正如GWLlosa所说)...
DataGridView1.Rows.Insert(rowPosition, New String(){value1, value2, value3})
我知道你提到过你不会使用数据绑定,但是如果在你的项目中定义了一个带有单个数据表的强类型数据集,你可以使用它并获取一些好的强类型方法来完成这些操作,而不必依赖于网格方法...
DataSet1.DataTable.AddRow(1, "John Doe", true)
myDataGridView.Rows.Insert(4,new object[]{value1,value2,value3});
DataGridView
绑定到一个DataSet
,您不能仅仅在DataGridView
中添加新行并显示。这样做将无法正常工作。DataSet
中添加新行:BindingSource[Name].AddNew()
这段代码还会自动在你的DataGridView
显示中添加一行。
当我尝试从使用绑定源的 DataGridView 转换数据源时,它会出现无法转换的错误:
----------解决方案------------
'我将转换操作更改为与 DataGridView 绑定的绑定源
'代码如下
Dim dtdata As New DataTable()
dtdata = CType(bndsData.DataSource, DataTable)
Dim previousAllowUserToAddRows = dgvHistoricalInfo.AllowUserToAddRows
dgvHistoricalInfo.AllowUserToAddRows = True
Dim newTimeRecord As DataGridViewRow = dgvHistoricalInfo.Rows(dgvHistoricalInfo.NewRowIndex).Clone
With record
newTimeRecord.Cells(dgvcDate.Index).Value = .Date
newTimeRecord.Cells(dgvcHours.Index).Value = .Hours
newTimeRecord.Cells(dgvcRemarks.Index).Value = .Remarks
End With
dgvHistoricalInfo.Rows.Add(newTimeRecord)
dgvHistoricalInfo.AllowUserToAddRows = previousAllowUserToAddRows
AllowUserToAddRows
权限,否则此操作将无法执行。这就是为什么我会存储现有值,将其设置为true,进行操作,然后再将其重置为原来的值。
AddNew()
方法。 - acme