首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 進階資料處理:參數驗證、排序與衝突偵測

     編輯:關於ASP.NET

資料控制項與資料源事件攔截參數

  • GridView RowUpdating:e.Keys、e.NewValues、e.OldValues 字典檢視即將傳遞參數。
  • SqlDataSource Updating:e.Command.Parameters 檢視實際送往資料庫的 DbParameter 集合。
  • ObjectDataSource Updating:e.InputParameters 檢視/修改傳遞給商業邏輯方法的參數。

參數順序控制:OLEDB 匿名參數

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 與 OldValues

  • ConflictDetection="OverwriteChanges" (預設):不比對舊值,直接覆寫,OldValues 不傳遞。
  • ConflictDetection="CompareAllValues":UPDATE 陳述式 WHERE 子句包含所有原始欄位值,偵測並行衝突,OldValues 會傳遞並附加到命令參數 (順序:NewValues → Keys → OldValues)。

Filter 參數特別注意:無 SQL 編碼

Filtering 事件參數直接套用至 DataView.RowFilter,不經 SQL 參數化,極易注入,務必於此事件驗證/清理輸入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved