我在.net中有一個數據表。我需要翻轉其中兩個的位置。例如,select語句具有按優先級順序排列的數據表。用戶想要一個單行的優先選擇它,然後單擊增加優先級,我怎麼移動行了(又名翻轉兩行)提前翻轉數據表的兩行
感謝
我在.net中有一個數據表。我需要翻轉其中兩個的位置。例如,select語句具有按優先級順序排列的數據表。用戶想要一個單行的優先選擇它,然後單擊增加優先級,我怎麼移動行了(又名翻轉兩行)提前翻轉數據表的兩行
感謝
在此表上使用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
您可以通過這樣做:
更新數據庫中兩行的優先級,然後重新填充網格(我假設你有一個顯示數據表的網格)。 (最簡單,最昂貴)
或者您可以更新數據庫中的優先級,並以編程方式更新兩行的行數。 (有點難度,最便宜)
數據庫的問題是,我不希望更新數據庫中,直到用戶點擊OK – dko 2011-01-14 16:52:15
是電網約束?如果沒有,那麼你可以更新行數來移動它們,只需在準備好時更新數據庫即可。 – Alex7575 2011-01-14 16:57:34