iT邦幫忙

0

[ASP.NET] Webform GridView 刪除時,可以順便update資料嗎?

我在GridView上開了刪除按鈕
並在SqlDataSource的DELETE內給下方語法
我想再刪除前,把@ITR_Qty的值加回另一個TABLE欄位 (@NowAsset_Stock)

SqlDataSource DeleteCommand

begin tran
--declare @NowAsset_Stock int (這邊會取消是因為aspx上有宣告了)
set @NowAsset_Stock = (select Asset_Stock from Asset where Asset_Num = @ITR_Asset_Num)
update Asset set Asset_Stock = @NowAsset_Stock + @ITR_Qty where Asset_Num = @ITR_Asset_Num
delete from [Inventory_Trans_Record] where [ITR_Num] = @ITR_Num
commit

SqlDataSource DeleteParameters

<DeleteParameters>
  <asp:Parameter Name="ITR_Asset_Num" />
  <asp:Parameter Name="ITR_Qty" Type="Int32"/>
  <asp:Parameter Name="ITR_Num" Type="String" />
  <asp:Parameter Name="NowAsset_Stock" />
</DeleteParameters>

測試幾次後大概知道
應該是按"刪除"時,當下GridView是Select模式,除了主索引有自動宣告
其餘資料皆無宣告,之後我自己加入宣告,但好像還是不行
請問這個case有辦法另外設置宣告,去讀出GridView是Select模式下,某個欄位的值嗎?
謝謝!!

2 個回答

0
ckp6250
iT邦研究生 2 級 ‧ 2020-09-02 16:23:01
最佳解答

刪除時,順便update資料

這種需求,我建議在資料庫的觸發程式中做,至於畫面,再重新 refresh ,讓它重新讀取資料就好。

阿偉 iT邦新手 2 級 ‧ 2020-09-02 16:32:41 檢舉

感謝,竟然沒想到,我試試看!

阿偉 iT邦新手 2 級 ‧ 2020-09-03 09:25:44 檢舉

你好,做出來了
不過後來也沒用觸發器做
我全程用T-SQL做
不取ASP.NET畫面上的值

ckp6250 iT邦研究生 2 級 ‧ 2020-09-03 09:41:17 檢舉

能做出來就好。
不過,用觸發器是比較好的方式,
既然 delete 和 update 有其直接關連
寫在同一區塊,比較直觀。

0
舜~
iT邦高手 1 級 ‧ 2020-09-02 21:15:33

GridView有兩個事件可以玩玩

RowDeleted: 刪除後
RowDeleting: 刪除中

您可以在事件中進行處理~

阿偉 iT邦新手 2 級 ‧ 2020-09-02 23:40:06 檢舉

搞定了,感謝您~

我要發表回答

立即登入回答