2010-03-22 78 views
1

我想为这个问题得到一些技巧。DataGridView Winform自动插入序号列(特技)

我有我的表像这样

产品(UUID,名称)

和一个DataGridView中显示该信息(dataGridView.DataSouce =产品是指定在运行时)

  • 我的问题是,我想要在dataGridView上显示“No”列,它将显示如下:

    否|名称

    1 |产品A

    2 |产品B

    3 |产品C

我现在要做的是在我的产品型号上创建一个“否”字段,并遍历所有行并为其赋值。

我认为这不是一个好的解决方案。

希望任何人都可以提出更好的解决方案。

谢谢,

回答

0

我从来没有找到一个把戏,但我已经研究了好几次。以下是关于这个问题的一些评论。

  1. 由于您正在添加一列,因此您基本上正在添加数据。因此,您必须指定该行的数据将用于该列。
  2. 更新特定列相对较快。大致与用表达式添加数据列的性能相同。我已经完成了性能测试并更新了一个整数值,而使用列索引的速度与您可以执行此更新的速度差不多。

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