2010-04-02 155 views
0

我在asp.net中使用GridView並使用編輯命令字段屬性編輯數據(正如我們知道更新編輯後的行,我們自動更新數據庫),並且我想使用事務(以begin提交語句 - 包括回滾)在數據庫中提交此更新查詢,點擊某個按鈕後(例如某些事件之後),不會自動將編輯後的數據從網格直接插入或更新到數據庫...所以我想保存他們臨時的地方(甚至許多編輯行 - 不只是一列),然後確認交易 - 更新數據庫中的真實的表...更新批處理數據

任何建議都歡迎...

我用一些良好的聯繫,但是非常有幫助的,如: http://www.asp.net/learn/data-access/tutorial-63-cs.aspx http://www.asp.net/learn/data-access/tutorial-66-cs.aspx 等等

回答

1

嗯,

您可以將編輯後的數據存儲在會話中的DataTable中。然後將該數據表作爲批量插入傳入數據庫。 2個選項可用於該

  1. ,如果你使用的是SQL Server 2005中您可以使用的OpenXML來實現這一點,因爲我如果您使用的是SQL Server 2008的youc的使用表變量像我一樣已經表示here
  2. here

我希望它能幫助

+0

謝謝你的建議,Aneef!非常有用的信息... – gaponte69 2010-04-03 07:33:45

1

第一種方式: 創建會話變量將包含您的數據庫對象(數據表或映射對象)。 GridView應該與這個實例一起工作,而不是將數據發送到數據庫。 編輯完成後,您可以從會話中取出對象並按照通常的方式進行保存。

第二種方式: 我將使用JavaScript來收集客戶端的所有更改,而他正在編輯爲對象數組(每個對象是單獨的行)。 編輯完成後,您可以從集合中創建json字符串並將其傳遞給服務器。 如果您的json對象配置與服務器類相同,那麼您可以使用JavaScriptSerializer將您的字符串反序列化爲對象集合。之後,您可以按照通常的方式保存對象。

+0

非常明確的解釋!對於這兩種方式我都有解決方案,而且我接受爲已接受的答案,但不幸的是我之前已經做過第一次回答:) 再次謝謝你! – gaponte69 2010-04-03 07:37:21