RowUpdating:e.Keys、e.NewValues、e.OldValues 字典檢視即將傳遞參數。Updating:e.Command.Parameters 檢視實際送往資料庫的 DbParameter 集合。Updating:e.InputParameters 檢視/修改傳遞給商業邏輯方法的參數。OLEDB 不支援命名參數,需在 DataSource 宣告 <UpdateParameters> 並依 SQL 指令中 ? 佔位符順序排列:
<asp:SqlDataSource ProviderName="System.Data.OleDb" UpdateCommand="UPDATE Orders SET OrderDate=?, ShipCountry=? WHERE OrderID=?">
<UpdateParameters>
<asp:Parameter Name="OrderDate" Type="DateTime" />
<asp:Parameter Name="ShipCountry" Type="String" />
<asp:Parameter Name="OrderID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
ConflictDetection="OverwriteChanges" (預設):不比對舊值,直接覆寫,OldValues 不傳遞。ConflictDetection="CompareAllValues":UPDATE 陳述式 WHERE 子句包含所有原始欄位值,偵測並行衝突,OldValues 會傳遞並附加到命令參數 (順序:NewValues → Keys → OldValues)。Filtering 事件參數直接套用至 DataView.RowFilter,不經 SQL 參數化,極易注入,務必於此事件驗證/清理輸入。