我只是想知道如果有人願意給我一些建議。VB .NET DataGridView SQL訂單列表
我有一個DataGridView,它包含從我的SQL數據庫中提取的數據。我想知道如何重新排列DataGridView中的行。
當前我正在使用排名系統。我在我的數據庫中有一個名爲ListOrder的字段,它表示它在我的DGV中顯示的順序,我使用ORDER BY ListOrder以正確的順序顯示它。
每次將新記錄添加到數據庫時,我都會使用計數查詢,然後使用+1來記錄新記錄。因此,例如,如果我的表中有10條記錄,則計數爲10,然後添加+1,因此對於新記錄它將等於11。這個問題是,如果我已經刪除了表中的記錄,排名變得不正確。另一個例子是我刪除了第一個在我的表中留下9的記錄,但是因爲我使用的是count,所以它會在表中計算9,然後添加+ 1,從而得到10的值,這意味着我可以有2包含我的ListOrder爲10的數據庫中的記錄(希望是有道理的)我知道我也可以使用MAX查詢,但這仍然給我一個類似的問題。
當我刪除一條記錄時,我需要它重新記錄所有記錄,並將它們保持相同的順序。
下面是我使用表內上下移動我的記錄代碼:
v_SelectRow = dgvLine1.CurrentRow.Index
dbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\planner.mdb;")
dbConnection.Open()
strSQL = "UPDATE [Line1Orders] SET [ListOrder] = ListOrder-1 WHERE ([DateTime] = '" & dgvLine1.Item(8, v_SelectRow).Value & "')"
dbCommand = New OleDbCommand(strSQL, dbConnection)
dbCount = dbCommand.ExecuteNonQuery
dbConnection.Close()
我因數查詢遇到的另一個問題是,當我刪除記錄,例如4, 5,6在我的表外,ListOrder值爲7的下一條記錄需要向上移動3次,然後纔會越過它之前的記錄。
我希望這是有道理的。我真的很感激,如果有人願意指出我正確的方向,以什麼功能,查詢和任何邏輯的想法,我怎樣才能改善這個當前的系統。我將不勝感激。
謝謝你們!
啊! Sql注入警報!不要使用字符串連接來將值替換爲像這樣的查詢。 _Ever._ –