LinqDataSource.Update Method (IDictionary, IDictionary, IDictionary)

 

Performs an update operation.

Namespace:   System.Web.UI.WebControls
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.

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

.NET Framework
Available since 3.5
Return to top
Show: