翻转两行数据表

时间:2011-01-14 16:38:10

标签: .net vb.net datatable

我在.net中有一个数据表。我需要翻转其中两个的位置。例如,select语句具有优先级顺序的数据表。用户希望通过选择它并单击增加优先级来提高单行的优先级,如何向上移动一行(AKA翻转两行)

提前致谢

2 个答案:

答案 0 :(得分:1)

在此表上使用DataView,按“优先级”列排序。如果要增加优先级,请增加此列,并在上面的行中减小它。 DataView将反映用户界面的变化。

Private _view As DataView

...

_view = New DataView(theTable, "", "priority", DataViewRowState.CurrentRows)
dataGridView1.DataSource = _view

...


' Increase priority of row at index i
If i > 0 Then
    Dim row = _view(i)
    Dim previousRow = _view(i - 1)
    row("priority") = row("priority") + 1
    previousRow("priority") = previousRow("priority") - 1
End


...


' Decrease priority of row at index i
If i < _view.Count - 1 Then
    Dim row = _view(i)
    Dim nextRow = _view(i + 1)
    row("priority") = row("priority") - 1
    nextRow ("priority") = nextRow ("priority") + 1
End

更改优先级后,使用DataAdapter

更新数据库

答案 1 :(得分:0)

您可以通过以下方式执行此操作:

更新数据库中两行的优先级,然后重新填充网格(假设您有一个显示数据表的网格)。 (最简单,最昂贵)

或者您可以更新数据库中的优先级,并以编程方式更新两行的行indeces。 (有点难,最便宜)