Exporter (0) Imprimer
Développer tout

SqlDataSource.UpdateCommand, propriété

Remarque : cette propriété est nouvelle dans le .NET Framework version 2.0.

Obtient ou définit la chaîne SQL que le contrôle SqlDataSource utilise pour mettre à jour des données de la base de données sous-jacente.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public string UpdateCommand { get; set; }
/** @property */
public String get_UpdateCommand ()

/** @property */
public void set_UpdateCommand (String value)

public function get UpdateCommand () : String

public function set UpdateCommand (value : String)

Valeur de la propriété

Chaîne SQL que SqlDataSource utilise pour mettre à jour des données.

Étant donné que les différents systèmes de base de données utilisent des variantes de langage SQL, la syntaxe de la chaîne SQL dépend du fournisseur ADO.NET utilisé, qui est identifié par la propriété ProviderName. Si la chaîne SQL est une requête ou une commande paramétrée, l'espace réservé du paramètre dépend également du fournisseur ADO.NET utilisé. Par exemple, si le fournisseur est System.Data.SqlClient, lequel est le fournisseur par défaut pour la classe SqlDataSource, l'espace réservé du paramètre est '@parameterName'. Toutefois, si le fournisseur a la valeur System.Data.Odbc ou System.Data.OleDb, l'espace réservé du paramètre est '?'. Pour plus d'informations sur les requêtes et les commandes SQL paramétrées, consultez Utilisation de paramètres avec le contrôle SqlDataSource.

La propriété UpdateCommand peut être une chaîne SQL ou le nom d'une procédure stockée, si la source de données les prend en charge.

La propriété UpdateCommand délègue à la propriété UpdateCommand de l'objet SqlDataSourceView associé au contrôle SqlDataSource.

Remarque de sécuritéRemarque de sécurité

Pour des raisons de sécurité, la propriété UpdateCommand n'est pas stockée dans l'état d'affichage. Étant donné qu'il est possible de décoder le contenu d'état d'affichage sur le client, le stockage d'informations sensibles relatives à la structure de base de données dans l'état d'affichage pourrait entraîner une faille dans la divulgation d'informations.

Cette section comprend deux exemples de code. Le premier exemple de code illustre comment définir la propriété UpdateCommand du contrôle SqlDataSource et mettre à jour des données dans une base de données Microsoft SQL Server à l'aide du contrôle GridView. Le deuxième exemple de code illustre comment mettre à jour des données dans une base de données ODBC à l'aide du contrôle GridView.

L'exemple de code suivant illustre comment définir la propriété UpdateCommand du contrôle SqlDataSource et mettre à jour des données dans une base de données SQL Server à l'aide du contrôle GridView. GridView remplit automatiquement la collection UpdateParameters, en inférant les paramètres des objets BoundField, et appelle la méthode Update lorsque le lien Mettre à jour sur le GridView modifiable est sélectionné. Cet exemple inclut également quelque post-traitement après la mise à jour d'un enregistrement, l'envoi d'un message électronique de notification.

<%@Page  Language="C#" %>
<%@Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
 private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e) {
    if (e.AffectedRows > 0) {
        // Perform any additional processing, 
        // such as setting a status label after the operation.
        Label1.Text = Request.LogonUserIdentity.Name +
            " changed user information successfully!";    
    }
    else {
        Label1.Text = "No data updated!";
    }
 }
</SCRIPT>

<HTML>
  <BODY>
    <FORM runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          DataSourceMode="DataSet"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
          UpdateCommand="Update Employees SET FirstName=@FirstName,LastName=@LastName,Title=@Title WHERE EmployeeID=@EmployeeID"
          OnUpdated="OnDSUpdatedHandler">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AutoGenerateColumns="False"
          DataKeyNames="EmployeeID"
          AutoGenerateEditButton="True"
          DataSourceID="SqlDataSource1">
          <columns>
              <asp:BoundField HeaderText="First Name" DataField="FirstName" />
              <asp:BoundField HeaderText="Last Name" DataField="LastName" />
              <asp:BoundField HeaderText="Title" DataField="Title" />
          </columns>
      </asp:GridView>

      <asp:Label
          id="Label1"
          runat="server">
      </asp:Label>

    </FORM>
  </BODY>
</HTML>

<%@Page  Language="VJ#" %>
<%@Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
    private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e)
    {
        if (e.get_AffectedRows() > 0) {
            // Perform any additional processing, such as sending an e-mail notification.
            Label1.set_Text(get_Request().get_LogonUserIdentity().get_Name() +
               " changed user information successfully!");    
        }
        else {
            Label1.set_Text("No data updated!");
        }
    } //OnDSUpdatedHandler
</SCRIPT>

<HTML>
  <BODY>
    <FORM runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          DataSourceMode="DataSet"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
          UpdateCommand="Update Employees SET FirstName=@FirstName,LastName=@LastName,Title=@Title WHERE EmployeeID=@EmployeeID"
          OnUpdated="OnDSUpdatedHandler">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AutoGenerateColumns="False"
          DataKeyNames="EmployeeID"
          AutoGenerateEditButton="True"
          DataSourceID="SqlDataSource1">
          <Columns>
              <asp:BoundField HeaderText="First Name" DataField="FirstName" />
              <asp:BoundField HeaderText="Last Name" DataField="LastName" />
              <asp:BoundField HeaderText="Title" DataField="Title" />
          </Columns>
      </asp:GridView>

      <asp:Label
          id="Label1"
          runat="server">
      </asp:Label>

    </FORM>
  </BODY>
</HTML>

L'exemple de code suivant qui est fonctionnellement identique à l'exemple de code précédent illustre comment mettre à jour des données dans une base de données ODBC à l'aide du contrôle GridView. ProviderName a la valeur du fournisseur ADO.NET pour ODBC, System.Data.Odbc, et la propriété ConnectionString a la valeur d'un nom de source de données ODBC (DSN).

<%@Page  Language="C#" %>
<%@Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">

 private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e) {
    if (e.AffectedRows > 0) {
        // Perform any additional processing, such as sending an e-mail notification.
        Label1.Text = Request.LogonUserIdentity.Name +
            " changed user information sucessfully!";
    }
    else {
        Label1.Text = "No data updated!";
    }
 }
</SCRIPT>

<HTML>
  <BODY>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->
    <FORM runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
          UpdateCommand="Update Employees SET FirstName=?,LastName=?,Title=? WHERE EmployeeID=?"
          OnUpdated="OnDSUpdatedHandler">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AutoGenerateColumns="False"
          DataKeyNames="EmployeeID"
          AutoGenerateEditButton="True"
          DataSourceID="SqlDataSource1">
          <columns>
              <asp:BoundField HeaderText="First Name" DataField="FirstName" />
              <asp:BoundField HeaderText="Last Name" DataField="LastName" />
              <asp:BoundField HeaderText="Title" DataField="Title" />
          </columns>
      </asp:GridView>

      <asp:Label
          id="Label1"
          runat="server">
      </asp:Label>

    </FORM>
  </BODY>
</HTML>

<%@Page  Language="VJ#" %>
<%@Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
    private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e)
    {
        if (e.get_AffectedRows() > 0) {
            // Perform any additional processing, such as sending an e-mail notification.
            Label1.set_Text(get_Request().get_LogonUserIdentity().get_Name() +
                " changed user information successfully!");
        }
        else {
            Label1.set_Text("No data updated!");
        }
    } //OnDSUpdatedHandler
</SCRIPT>

<HTML>
  <BODY>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->
    <FORM runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
          UpdateCommand="Update Employees SET FirstName=?,LastName=?,Title=? WHERE EmployeeID=?"
          OnUpdated="OnDSUpdatedHandler">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AutoGenerateColumns="False"
          DataKeyNames="EmployeeID"
          AutoGenerateEditButton="True"
          DataSourceID="SqlDataSource1">
          <Columns>
              <asp:BoundField HeaderText="First Name" DataField="FirstName" />
              <asp:BoundField HeaderText="Last Name" DataField="LastName" />
              <asp:BoundField HeaderText="Title" DataField="Title" />
          </Columns>
      </asp:GridView>

      <asp:Label
          id="Label1"
          runat="server">
      </asp:Label>

    </FORM>
  </BODY>
</HTML>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft