SqlDataSource控件有个ConflicatDetection属性和OldValuesParameterFormatString属性都被赋值。这两个属性会使SqlDataSource控件为每一个数据列保持此列的原始值和修改值。
ConflicatDetection属性可以为两个值:
OverwriteChanges:系统默认的值,会导致SqlDataSource控件直接使用新值覆盖到数据列中。
CampareAllValues:SqlDataSource控件会为每一列保持原始值和修改后的值。
OldValuesParameterFormatString属性用来为列的原始值提供唯一的名称。例如,一个SqlDataSource控件的UpdateCommand属性如下所示:
OldValuesParameterFormatString属性为Original_{0}
Update class set
name=@name ,departement=@departement
where
id=@original_Id and
name=@original_name and departement=@original_departement
@original_Id,@original_name,@original_departement参数表示这些列的原始值。如果有人先改了这个数据,被次修改没用。