Freigeben über


SqlDataSource.SelectCommand Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der SQL-Zeichenfolge, die vom SqlDataSource Steuerelement zum Abrufen von Daten aus der zugrunde liegenden Datenbank verwendet wird.

public:
 property System::String ^ SelectCommand { System::String ^ get(); void set(System::String ^ value); };
public string SelectCommand { get; set; }
member this.SelectCommand : string with get, set
Public Property SelectCommand As String

Eigenschaftswert

Eine SQL-Zeichenfolge oder der Name einer gespeicherten Prozedur, die zum SqlDataSource Abrufen von Daten verwendet wird.

Beispiele

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie der SelectCommand Text auf eine einfache SQL-Abfrage festgelegt wird, um Daten aus einer ODBC-kompatiblen Datenbank abzurufen und in einem GridView Steuerelement anzuzeigen. Im zweiten Codebeispiel wird veranschaulicht, wie der SelectCommand Text auf den Namen einer gespeicherten Prozedur und die SelectCommandType Eigenschaft auf den StoredProcedure Wert festgelegt wird, um Daten aus einer Microsoft SQL Server-Datenbank abzurufen und in einem DropDownList Steuerelement anzuzeigen.

In beiden Beispielen ist es nicht erforderlich, die Select Methode explizit aufzurufen, da die datengebundenen Steuerelemente, die über die DataSourceID Eigenschaft an das Datenquellensteuerelement angefügt sind, die Select Methode während der PreRender Phase automatisch aufrufen.

Im folgenden Codebeispiel wird veranschaulicht, wie der SelectCommand Text auf eine einfache SQL-Abfrage festgelegt wird, um Daten aus einer ODBC-kompatiblen Datenbank abzurufen und in einem GridView Steuerelement anzuzeigen.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<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 id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<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 id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

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

Im folgenden Codebeispiel wird veranschaulicht, wie der SelectCommand Text auf den Namen einer gespeicherten Prozedur und die SelectCommandType Eigenschaft auf den StoredProcedure Wert festgelegt wird, um Daten aus einer SQL Server-Datenbank abzurufen und in einem DropDownList Steuerelement anzuzeigen. Die SelectCommand Eigenschaft kann eine SQL-Abfrage oder der Name einer gespeicherten Prozedur sein, wenn die Datenquelle gespeicherte Prozeduren unterstützt.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType="StoredProcedure"                
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

        </form>
    </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType = "StoredProcedure"
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

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

Hinweise

Die SelectCommand Eigenschaft stellt eine SQL-Abfrage oder den Namen einer gespeicherten Prozedur dar und wird von der Select Methode zum Abrufen von Daten aus einer SQL Server-Datenbank verwendet. Wenn Sie im Befehl "Auswählen" ein Sternchen (*) verwenden, um alle Spalten auszuwählen, und wenn Sie zum Ausführen von Aktualisierungs- oder Löschvorgängen automatische Codegenerierung verwenden, stellen Sie sicher, dass keine Spalten Leerzeichen in ihren Namen haben.

Da unterschiedliche Datenbankprodukte unterschiedliche SQL-Varianten verwenden, hängt die Syntax der SQL-Zeichenfolge von dem aktuellen ADO.NET verwendeten Anbieter ab, der von der ProviderName Eigenschaft identifiziert wird. Wenn es sich bei der SQL-Zeichenfolge um eine parametrisierte Abfrage oder einen parametrisierten Befehl handelt, hängt der Platzhalter des Parameters auch vom verwendeten ADO.NET Anbieter ab. Wenn der Anbieter beispielsweise der System.Data.SqlClientStandardanbieter für die SqlDataSource Klasse ist, lautet '@parameterName'der Platzhalter des Parameters . Wenn der Anbieter jedoch auf den System.Data.Odbc Oder-Wert System.Data.OleDbfestgelegt ist, lautet '?'der Platzhalter des Parameters . Weitere Informationen zu parametrisierten SQL-Abfragen und -Befehlen finden Sie unter Verwenden von Parametern mit dem SqlDataSource-Steuerelement.

Die SelectCommand Eigenschaft kann eine SQL-Zeichenfolge oder der Name einer gespeicherten Prozedur sein, wenn die Datenquelle gespeicherte Prozeduren unterstützt.

Die SelectCommand Eigenschaft delegiert an die SelectCommand Eigenschaft des SqlDataSourceView Objekts, das dem SqlDataSource Steuerelement zugeordnet ist.

Von Bedeutung

Für Sicherheitszwecke wird die SelectCommand Eigenschaft nicht gespeichert, ist der Ansichtszustand. Da es möglich ist, den Inhalt des Ansichtszustands auf dem Client zu decodieren, kann das Speichern vertraulicher Informationen über die Datenbankstruktur im Ansichtszustand zu einer Sicherheitslücke zur Offenlegung von Informationen führen.

Von Bedeutung

Werte werden ohne Überprüfung in Parameter eingefügt, was eine potenzielle Sicherheitsgefahr ist. Verwenden Sie das Filtering Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Script Exploits Overview.

Gilt für:

Weitere Informationen