我有一個網頁,它顯示之前捕獲的數據。現在這個數據來自數據庫,屬於數據庫表的多個記錄。當用戶更新這些數據時,我們必須更新我們的數據庫記錄。問題是我無法跟蹤哪些記錄已被修改,因爲我們沒有會話。所以我再次獲取所有記錄並與網頁中的數據進行比較。如果有人知道更好的方法(避免比較),請幫助我。如何在不保持會話的情況下避免比較?
回答
使用記錄的主鍵來識別它。 當您渲染表單以編輯記錄時,您可以在隱藏字段中輸出主鍵。
如果你有一個頁面,允許同時更新多個記錄,比你能跳過比較和隨時更新的所有記錄 - 如果你使用2008 MSSQL或更新版本,您可以使用表值參數來傳遞所有在一次調用中將記錄記錄到數據庫並使用MERGE命令進行批量更新。
你也可以編寫javascript,它會觸發每個輸入編輯,併爲修改後的記錄(隱藏字段)設置一個'髒'標誌。你會知道哪些行被編輯。
感謝您的回覆@Jakub。但是如果用戶刪除了某些東西(某些記錄),怎麼檢測那個呢? –
您可以使用值爲'deleted'而不是'edited'的'dirty'標誌。對於新記錄將標誌設置爲「新」。 –
如果我們不想進行批量更新,您可以詳細解釋一下它是如何避免比較的。 –
- 1. 如何避免在以下情況下重新比較字符串?
- 2. 元組比較'A'==('A'),如何避免這種情況?
- 3. 如何避免這種情況下
- 4. 保持ASP.NET網站在沒有會話的情況下運行?
- 5. 你會如何避免這種情況下的虛假共享?
- 6. 如何在沒有JavaScript的情況下保持元素比例
- 7. 「會話」不會在目前情況下
- 8. php:在某些情況下避免__get?
- 9. 在ASP.NET中避免會話劫持
- 10. 開關的情況下避免循環
- 11. 避免開關的情況下-linq
- 12. 如何避免在我的情況下返回null?
- 13. 在這種情況下如何避免嵌套的SQL查詢?
- 14. 如何避免在這種情況下的Optional.None錯誤?
- 15. 如何在避免重複的情況下創建列表?
- 16. 如何在Struts2的這種情況下避免「鏈」?
- 17. 如何在沒有PreparedStatements的情況下避免SQL注入
- 18. 如何避免在這種情況下的子報告
- 19. 如何避免過多的空比較
- 20. 比較在兩種情況下
- 21. 如何在這種情況下避免循環依賴?
- 22. 如何避免-1在這種情況下
- 23. 在這種情況下如何避免內存泄漏?
- 24. 如何避免在這種情況下做100個查詢?
- 25. 在這種情況下如何避免Thread.Abort()?
- 26. 如何避免在這種情況下反覆調用函數?
- 27. 在這種情況下如何避免重複代碼?
- 28. 在這種情況下如何避免sql server頁面碎片?
- 29. 如何避免在這種情況下使用instanceof?
- 30. 在這種情況下如何避免服務地點? (Ninject)
我認爲這不是一個好的做法,你應該在這裏使用某種數據綁定機制。通常開發人員不應該擔心這些事情。請深入研究數據綁定主題,您將更好地瞭解如何處理這種情況。 – Geethanga