SELECT [ID], [Name], [Address] from [Contacts] --
OverwriteChanges UPDATE [Contacts] SET [Name] = @Name, [Address] =
@Address WHERE [ID] = @ID DELETE FROM [Contacts] WHERE [ID] =
@ID
-- CompareAllValues UPDATE [Contacts] SET [Name] = @Name,
[Address] = @Address WHERE [ID] = @original_ID AND [Name] =
@original_Name AND [Address] = @original_Address DELETE FROM [Contacts]
WHERE [ID] = @original_ID AND [Name] = @original_Name AND [Address] =
@original_Address 请注意,Insert操作不需要OldValues,ConflictDetection只对Update和Delete操作有意义。
<script runat="server"> Protected Sub SqlDataSource1_Updated(sender
As Object, e As SqlDataSourceStatusEventArgs) If e.AffectedRows = 0
Then Response.Write("Row changed, update aborted<br />") End
If End Sub
Protected Sub SqlDataSource1_Deleted(sender As
Object, e As SqlDataSourceStatusEventArgs) If e.AffectedRows = 0
Then Response.Write("Row changed, delete aborted<br />") End
If End
Sub </script> 当Update或Delete使用模板化UI的时候,使用了Bind语法的双向(two-way)数据绑定字段的旧值都会被保留。对于Delete来说,这意味着在ItemTemplate中你必须给数据绑定的值使用Bind语法,其目的是为了保留删除操作所需要的旧值。下面的例子演示了这种技术。