Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

ObjectDataSource.UpdateParameters Propriedade

Gets the parameters collection that contains the parameters that are used by the method that is specified by the UpdateMethod property.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (em System.Web. dll)

[PersistenceModeAttribute(PersistenceMode.InnerProperty)]
public ParameterCollection UpdateParameters { get; }

Valor da propriedade

Tipo: System.Web.UI.WebControls.ParameterCollection

A ParameterCollection that contains the parameters used by the method that is specified by the UpdateMethod property.

The names and types of the parameters that are contained in the UpdateParameters collection must match the names and types of the parameters in the UpdateMethod method signature.The parameter names are affected by the OldValuesParameterFormatString property and are case-sensitive.Os parâmetros da coleção dependem de dados do Controlarar ligado a dados, os parâmetros que são especificados declarativamente e os parâmetros que são adicionados por meio de programação.For more information, see the "Parameter Merging" section in Update and Usando Parâmetros com o Controle ObjectDataSource.

Observação:

Se você não estiver familiarizado com os recursos de acesso a dados no ASP.NET 2.0, você deve ler alguns desses tópicos antes de continuar:

The UpdateParameters property retrieves the UpdateParameters property that is contained by the ObjectDataSourceView object that is associated with the ObjectDataSource control.

For more information about parameter merging, object lifetime, and method resolution, see UpdateMethod.

Observação de segurança:

Você deve validar qualquer valor de parâmetro que você recebe do cliente.The runtime simply substitutes the parameter value into the UpdateMethod property.

Esta seção contém dois exemplos de código.The first code example demonstrates how to use a DropDownList control, TextBox controls, and several ObjectDataSource objects to update data.The second code example shows the EmployeeLogic class that is used in the first code example.

The following code example demonstrates how to use a DropDownList control, TextBox controls, and several ObjectDataSource controls to update data.The DropDownList displays the name of a Northwind employee, while the TextBox controls are used to enter and update address information.Because the UpdateParameters collection contains a ControlParameter that is bound to the selected value of the DropDownList, the button that raises the Update operation is enabled only after an employee is selected.

Observação de segurança:

Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança.Por padrão, páginas Web ASP.NET validam se as entradas de usuário não incluem scripts ou elementos HTML.Para mais informações, acesse Visão Geral de Scripts Maliciosos.

<%@ Register TagPrefix= Namespace= Assembly= %>
<%@ Page language= %>
<%@ Import = %>
<!DOCTYPE html PUBLIC "-
    "http:
<script runat=>



  Page_Load(object sender, EventArgs e)
{
  
  
  NorthwindEmployee selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.SelectedValue);
   (selectedEmployee != ) {
    AddressBox.Text    = selectedEmployee.Address;
    CityBox.Text       = selectedEmployee.City;
    PostalCodeBox.Text = selectedEmployee.PostalCode;

    Button1.Enabled = ;
  }
   {
    Button1.Enabled = ;
  }
}


  Btn_UpdateEmployee (object sender, CommandEventArgs e) {
  ObjectDataSource2.Update();
}
</script>
<html xmlns="http:
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id= method= runat=>

        <!-- The DropDownList  bound to the first ObjectDataSource. -->
        <asp:objectdatasource
          id=
          runat=
          selectmethod=
          typename= />

        <p><asp:dropdownlist
          id=
          runat=
          datasourceid=
          datatextfield=
          datavaluefield=
          autopostback= /></p>

        <!-- The second ObjectDataSource performs the Update. This
             preserves the state of the DropDownList, which otherwise
             would rebind when the DataSourceChanged  
             raised  a result of an Update operation. -->

        <!-- Security Note: The ObjectDataSource uses a FormParameter,
             Security Note: which does not perform validation of input  the client.
             Security Note: To validate the value of the FormParameter,
             Security Note: handle the Updating . -->

        <asp:objectdatasource
          id=
          runat=
          updatemethod=
          typename=>
          <updateparameters>
            <asp:controlparameter name= controlid= propertyname= />
            <asp:formparameter name= formfield= />
            <asp:formparameter name= formfield= />
            <asp:formparameter name= formfield= />
          </updateparameters>
        </asp:objectdatasource>

        <p><asp:textbox
          id=
          runat= /></p>

        <p><asp:textbox
          id=
          runat= /></p>

        <p><asp:textbox
          id=
          runat= /></p>

        <asp:button
          id=
          runat=
          text=
          oncommand= />

    </form>
  </body>
</html>


<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL" Assembly="Samples.AspNet.JSL" %>
<%@ Page language="VJ#" %>
<%@ Import namespace="Samples.AspNet.JSL" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

// Add parameters and initialize the user interface
// only if an employee is selected.
    private void Page_Load(Object sender, EventArgs e) throws NorthwindDataException
    {
        // Be sure the text boxes are initialized with
        // data from the currently selected employee.
        NorthwindEmployee selectedEmployee =
            EmployeeLogic.GetEmployee(DropDownList1.get_SelectedValue());
        if (selectedEmployee != null) {
            AddressBox.set_Text(selectedEmployee.get_Address());
            CityBox.set_Text(selectedEmployee.get_City());
            PostalCodeBox.set_Text(selectedEmployee.get_PostalCode());
            Button1.set_Enabled(true);
        }
        else {
            Button1.set_Enabled(false);
        }
    } //Page_Load

    // Press the button to update.
    private void Btn_UpdateEmployee(Object sender, CommandEventArgs e)
    {
        ObjectDataSource2.Update();
    } //Btn_UpdateEmployee
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - VJ# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <!-- The DropDownList is bound to the first ObjectDataSource. -->
        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.JSL.EmployeeLogic" />

        <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          datasourceid="ObjectDataSource1"
          datatextfield="FullName"
          datavaluefield="EmpID"
          autopostback="True" /></p>

        <!-- The second ObjectDataSource performs the Update. This
             preserves the state of the DropDownList, which otherwise
             would rebind when the DataSourceChanged event is
             raised as a result of an Update operation. -->

        <asp:objectdatasource
          id="ObjectDataSource2"
          runat="server"
          updatemethod="UpdateEmployeeWrapper"
          typename="Samples.AspNet.JSL.EmployeeLogic">
          <updateparameters>
            <asp:controlparameter name="anID" controlid="DropDownList1" propertyname="SelectedValue" />
            <asp:formparameter name="anAddress" formfield="AddressBox" />
            <asp:formparameter name="aCity" formfield="CityBox" />
            <asp:formparameter name="aPostalCode" formfield="PostalCodeBox" />
          </updateparameters>
        </asp:objectdatasource>

        <p><asp:textbox
          id="AddressBox"
          runat="server" /></p>

        <p><asp:textbox
          id="CityBox"
          runat="server" /></p>

        <p><asp:textbox
          id="PostalCodeBox"
          runat="server" /></p>

        <asp:button
          id="Button1"
          runat="server"
          text="Update Employee"
          oncommand="Btn_UpdateEmployee" />

    </form>
  </body>
</html>


The following code example shows the EmployeeLogic class that is used in the preceding code example.

 Samples.AspNet.CS {

 System;
 System.Collections;
 System.Configuration;
 System.Data;
 System.Data.SqlClient;
 System.Web.UI;
 System.Web.UI.WebControls;
  
  
  
  
    EmployeeLogic {

    
      ICollection GetAllEmployees () {
      ArrayList al =  ArrayList();

      
      
      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings[];

      SqlDataSource sds
        =  SqlDataSource(cts.ConnectionString,
                            );
       {
        IEnumerable IDs = sds.Select(DataSourceSelectArguments.Empty);

        
        
        IEnumerator enumerator = IDs.GetEnumerator();
         (enumerator.MoveNext()) {
          
          DataRowView row = enumerator.Current  DataRowView;
          string id = row[].ToString();
          NorthwindEmployee nwe =  NorthwindEmployee(id);
          
          al.Add(nwe);
        }
      }
       {
        
        sds.Dispose();
      }

       al;
    }

      NorthwindEmployee GetEmployee(object anID) {
      ArrayList al = GetAllEmployees()  ArrayList;
      IEnumerator enumerator = al.GetEnumerator();
       (enumerator.MoveNext()) {
        
        NorthwindEmployee ne = enumerator.Current  NorthwindEmployee;
         (ne.EmpID.Equals(anID.ToString())) {
           ne;
        }
      }
       ;
    }
       UpdateEmployee(NorthwindEmployee ne) {
       retval = ne.Update();
       (! retval) {   NorthwindDataException(); }
    }

    
    
       UpdateEmployeeWrapper(string anID,
                                             string anAddress,
                                             string aCity,
                                             string aPostalCode) {
      NorthwindEmployee ne =  NorthwindEmployee(anID);
      ne.Address = anAddress;
      ne.City = aCity;
      ne.PostalCode = aPostalCode;
      UpdateEmployee(ne);
    }

    
  }

    NorthwindEmployee {

     NorthwindEmployee (object anID) {
      .ID = anID;

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings[];
      SqlConnection conn =  SqlConnection (cts.ConnectionString);
      SqlCommand sc =
         SqlCommand( +
                        +
                       ,
                       conn);
      
      sc.Parameters.Add( SqlParameter(,SqlDbType.Int)).Value = Int32.Parse(anID.ToString());
      SqlDataReader sdr = ;

       {
        conn.Open();
        sdr = sc.ExecuteReader();

        
         (sdr !=  && sdr.Read()) {
          
          .firstName       = sdr[].ToString();
          .lastName        = sdr[].ToString();
          .address         = sdr[].ToString();
          .city            = sdr[].ToString();
          .postalCode      = sdr[].ToString();
        }
         {
            NorthwindDataException();
        }
      }
       {
         {
           (sdr != ) sdr.Close();
          conn.Close();
        }
         (SqlException) {
          
          ;
        }
      }
    }

     object ID;
     object EmpID {
       {  ID; }
    }

     string lastName;
     string LastName {
       { lastName = value; }
    }

     string firstName;
     string FirstName {
       { firstName = value;  }
    }

     string FullName {
       {  firstName +  + lastName; }
    }

     string address;
     string Address {
       {  address; }
       { address = value;  }
    }

     string city;
     string City {
       {  city; }
       { city = value;  }
    }

     string postalCode;
     string PostalCode {
       {  postalCode; }
       { postalCode = value;  }
    }

      Update () {

      

       ;
    }
  }

    NorthwindDataException: Exception {
     NorthwindDataException(string msg) :  (msg) { }
  }
}


package Samples.AspNet.JSL; 

import System.*;
import System.Collections.*;
import System.Configuration.*;
import System.Data.*;
import System.Data.SqlClient.*;
import System.Web.UI.*;
import System.Web.UI.WebControls.*;

//
// EmployeeLogic is a stateless business object that encapsulates
// the operations one can perform on a NorthwindEmployee object.
//
public class EmployeeLogic
{
    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees() throws NorthwindDataException
    {
        ArrayList al = new ArrayList();
        // Use the SqlDataSource class to wrap the
        // ADO.NET code required to query the database.
        ConnectionStringSettings cts =
            ConfigurationManager.get_ConnectionStrings().
            get_Item("NorthwindConnection");

        SqlDataSource sds = new SqlDataSource(cts.get_ConnectionString(),
            "SELECT EmployeeID FROM Employees");
        try {
            IEnumerable ids = sds.Select(DataSourceSelectArguments.get_Empty());
            // Iterate through the Enumeration and create a
            // NorthwindEmployee object for each ID.
            IEnumerator enumerator = ids.GetEnumerator();
            while (enumerator.MoveNext()) {
                // The IEnumerable contains DataRowView objects.
                DataRowView row = (DataRowView)enumerator.get_Current();
                String idObj = row.get_Item("EmployeeID").ToString();
                NorthwindEmployee nwe = new NorthwindEmployee(idObj);
                // Add the NorthwindEmployee object to the collection.
                al.Add(nwe);
            }
        }
        finally {
            // If anything strange happens, clean up.
            sds.Dispose();
        }
        return al;
    } //GetAllEmployees

    public static NorthwindEmployee GetEmployee(Object anID)
        throws NorthwindDataException
    {
        ArrayList al = (ArrayList)GetAllEmployees();
        IEnumerator enumerator = al.GetEnumerator();
        while (enumerator.MoveNext()) {
            // The IEnumerable contains initialized NorthwindEmployee objects.
            NorthwindEmployee ne = (NorthwindEmployee)enumerator.get_Current();
            if (ne.get_EmpID().Equals(anID.ToString())) {
                return ne;
            }
        }
        return null;
    } //GetEmployee

    public static void UpdateEmployee(NorthwindEmployee ne)
        throws NorthwindDataException
    {
        boolean retVal = ne.Update();
        if (!(retVal)) {
            throw new NorthwindDataException("Employee update failed.");
        }
    } //UpdateEmployee

    // This method is added as a conveniece wrapper on the original
    // implementation.
    public static void UpdateEmployeeWrapper(String anID, String anAddress,
        String aCity, String aPostalCode) throws NorthwindDataException
    {
        NorthwindEmployee ne = new NorthwindEmployee(anID);
        ne.set_Address(anAddress);
        ne.set_City(aCity);
        ne.set_PostalCode(aPostalCode);
        UpdateEmployee(ne);
    } //UpdateEmployeeWrapper
    // And so on...
} //EmployeeLogic

public class NorthwindEmployee
{
    public NorthwindEmployee(Object anID) throws NorthwindDataException
    {
        this.id = anID;

        ConnectionStringSettings cts =
			ConfigurationManager.get_ConnectionStrings().
            get_Item("NorthwindConnection");
        SqlConnection conn = new SqlConnection(cts.get_ConnectionString());
        SqlCommand sc = new SqlCommand(" SELECT FirstName,LastName,Address,"
            + "City,PostalCode " + " FROM Employees "
            + " WHERE EmployeeID = @empId", conn);
        // Add the employee ID parameter and set its value.
        sc.get_Parameters().Add(new SqlParameter("@empId", SqlDbType.Int)).
            set_Value(anID.ToString());
        SqlDataReader sdr = null;

        try {
            conn.Open();
            sdr = sc.ExecuteReader();
            // This is not a while loop. It only loops once.
            if (sdr != null && sdr.Read()) {
                // The IEnumerable contains DataRowView objects.
                this.firstName = sdr.get_Item("FirstName").ToString();
                this.lastName = sdr.get_Item("LastName").ToString();
                this.address = sdr.get_Item("Address").ToString();
                this.city = sdr.get_Item("City").ToString();
                this.postalCode = sdr.get_Item("PostalCode").ToString();
            }
            else {
                throw new NorthwindDataException("Data not loaded for"
                    + " employee id.");
            }
        }
        finally {
            try {
                if (sdr != null) {
                    sdr.Close();
                }
                conn.Close();
            }
            catch (SqlException exp) {
                // Log an event in the Application Event Log.                  
            }
        }
    } //NorthwindEmployee

    private Object id;

    /** @property 
     */
    public Object get_EmpID()
    {
        return id;
    } //get_EmpID

    private String lastName;

    /** @property 
     */
    public void set_LastName(String value)
    {
        lastName = value;
    } //set_LastName

    private String firstName;

    /** @property 
     */
    public void set_FirstName(String value)
    {
        firstName = value;
    } //set_FirstName

    /** @property 
     */
    public String get_FullName()
    {
        return firstName + " " + lastName;
    } //get_FullName

    private String address;

    /** @property 
     */
    public String get_Address()
    {
        return address;
    } //get_Address

    /** @property 
     */
    public void set_Address(String value)
    {
        address = value;
    } //set_Address

    private String city;

    /** @property
     */
    public String get_City()
    {
        return city;
    } //get_City

    /** @property
     */
    public void set_City(String value)
    {
        city = value;
    } //set_City

    private String postalCode;

    /** @property 
     */
    public String get_PostalCode()
    {
        return postalCode;
    } //get_PostalCode

    /** @property 
     */
    public void set_PostalCode(String value)
    {
        postalCode = value;
    } //set_PostalCode

    public boolean Update()
    {
        // Implement Update logic.
        return true;
    } //Update
} //NorthwindEmployee

public class NorthwindDataException extends Exception
{
    public NorthwindDataException(String msg)
    {
         super(msg);
    } //NorthwindDataException
} //NorthwindDataException


Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
© 2013 Microsoft. Todos os direitos reservados.