Export (0) Print
Expand All

LinqDataSource.Update Method

Performs an update operation.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public int Update(
	IDictionary keys,
	IDictionary values,
	IDictionary oldValues
)

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.

Return Value

Type: System.Int32
The number of records affected by the update operation.

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 void Reset_Click(object sender, EventArgs e)
{
    ListDictionary keyValues = new ListDictionary();
    ListDictionary newValues = new ListDictionary();
    ListDictionary oldValues = new ListDictionary();

    keyValues.Add("ProductID", int.Parse(((Label)DetailsView1.FindControl("IDLabel")).Text));

    oldValues.Add("ProductName", ((Label)DetailsView1.FindControl("NameLabel")).Text);
    oldValues.Add("ProductCategory", ((Label)DetailsView1.FindControl("CategoryLabel")).Text);
    oldValues.Add("Color", ((Label)DetailsView1.FindControl("ColorLabel")).Text);

    newValues.Add("ProductName", "New Product");
    newValues.Add("ProductCategory", "General");
    newValues.Add("Color", "Not assigned");

    LinqDataSource1.Update(keyValues, newValues, oldValues);

    DetailsView1.DataBind();
}

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="Reset_Click" />

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft