LinqDataSource.Update Method (IDictionary, IDictionary, IDictionary)
Performs an update operation.
Assembly: System.Web.Extensions (in System.Web.Extensions.dll)
Public Function Update ( keys As IDictionary, values As IDictionary, oldValues As IDictionary ) As Integer
Parameters
- keys
-
Type:
System.Collections.IDictionary
The row key values for the records to be updated.
- values
-
Type:
System.Collections.IDictionary
The row values to be updated in the data source.
- oldValues
-
Type:
System.Collections.IDictionary
The row values that are evaluated to detect data conflicts.
Typically, you do not have to call the Update method from your code. The data-bound control will automatically call the Update method when the user takes action to update a record. You explicitly call the Update method when you want to create your own process for updating data.
The following example shows how to programmatically update a record in the data source after the user clicks a button. The code passes a ListDictionary object that contains the key value, a ListDictionary object that contains the original values, and a ListDictionary object that contains the new values to the Update method.
Protected Sub Add_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim keyValues As New ListDictionary() Dim newValues As New ListDictionary() Dim oldValues As New ListDictionary() keyValues.Add("ProductID", Int32.Parse(CType(DetailsView1.FindControl("IDLabel"), Label).Text)) oldValues.Add("ProductName", CType(DetailsView1.FindControl("NameLabel"), Label).Text) oldValues.Add("ProductCategory", CType(DetailsView1.FindControl("CategoryLabel"), Label).Text) oldValues.Add("Color", CType(DetailsView1.FindControl("ColorLabel"), Label).Text) newValues.Add("ProductName", "New Product") newValues.Add("ProductCategory", "General") newValues.Add("Color", "Not assigned") LinqDataSource1.Update(keyValues, newValues, oldValues) DetailsView1.DataBind() End Sub
The following example shows the markup for the previous example.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
EnableUpdate="true"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:DetailsView
DataSourceID="LinqDataSource1"
AllowPaging="True"
ID="DetailsView1"
runat="server" AutoGenerateRows="False">
<Fields>
<asp:templatefield HeaderText="Product ID">
<itemtemplate>
<asp:Label ID="IDLabel" runat="server" Text='<%# Bind("ProductID") %>'></asp:Label>
</itemtemplate>
</asp:templatefield>
<asp:templatefield HeaderText="Product Name">
<itemtemplate>
<asp:Label ID="NameLabel" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label>
</itemtemplate>
</asp:templatefield>
<asp:templatefield HeaderText="Category">
<itemtemplate>
<asp:Label ID="CategoryLabel" runat="server" Text='<%# Bind("ProductCategory") %>'></asp:Label>
</itemtemplate>
</asp:templatefield>
<asp:templatefield HeaderText="Color">
<itemtemplate>
<asp:Label ID="ColorLabel" runat="server" Text='<%# Bind("Color") %>'></asp:Label>
</itemtemplate>
</asp:templatefield>
</Fields>
</asp:DetailsView>
<asp:button
ID="Button1"
Text="Reset with default values"
runat="server"
onclick="Add_Click" />
Available since 3.5