【问题标题】:DataGridView Winform Auto Insert Ordinal Column (Trick)DataGridView Winform 自动插入序号列(技巧)
【发布时间】:2010-03-22 03:24:34
【问题描述】:
我想解决这个问题。
我的桌子是这样的
产品(uuid,名称)
和一个数据网格视图来显示此信息(dataGridView.DataSouce = 在运行时分配的产品)
我现在要做的是在我的产品模型上创建一个“否”字段,然后遍历所有行并为其赋值。
我认为这不是一个好的解决方案。
希望任何人都可以提出更好的解决方案。
谢谢,
【问题讨论】:
标签:
winforms
ado.net
datagridview
auto-increment
【解决方案1】:
我从来没有发现任何窍门,但我研究了好几次。以下是一些关于这个问题的cmets。
- 由于您要添加列,因此您基本上是在添加数据。因此,您必须指定该列的行数据。
- 更新特定列的速度相对较快。与使用表达式添加数据列的性能大致相同。我已经完成了性能测试并更新了一个整数值,而使用 列的索引 的速度与您进行此更新的速度差不多。
Dim oData As DataTable = GatherDataTable()
Dim oAutoIdColumn As New DataColumn("uuid", GetType(Integer))
oData.Columns.Add(oAutoIdColumn)
Dim iColumnIndex As Integer = oAutoIdColumn.Ordinal
Dim oRows As DataRowCollection = oData.Rows
Dim iRowCount As Integer = oRows.Count
For i As Integer = 1 To iRowCount
oRows.Item(i - 1).Item(iColumnIndex) = i
'-or-
oRows(i - 1)(iColumnIndex) = i
Next
Me.DataGridView1.DataSource = oData