SqlDataSource.SelectCommand Eigenschaft

Definition

Ruft die SQL-Zeichenfolge ab, die vom SqlDataSource-Steuerelement zum Abrufen von Daten aus der zugrunde liegenden Datenbank verwendet wird, oder legt diese Zeichenfolge fest.

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 mit der die SqlDataSource Daten abruft.

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 -Eigenschaft an das DataSourceID Datenquellensteuerelement angefügt werden, die -Methode während der SelectPreRender 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 verwendet, um Daten aus einer SQL Server-Datenbank abzurufen. Wenn Sie im Befehl Auswählen ein Sternchen (*) verwenden, um alle Spalten auszuwählen, und wenn Sie die automatische Codegenerierung zum Ausführen von Aktualisierungs- oder Löschvorgängen verwenden, stellen Sie sicher, dass keine Spalten Leerzeichen in ihren Namen enthalten.

Da die jeweiligen Datenbankprodukte verschiedene SQL-Varianten verwenden, hängt die Syntax der SQL-Zeichenfolge vom derzeit verwendeten ADO.NET-Anbieter ab, der durch die ProviderName-Eigenschaft identifiziert wird. Wenn die SQL-Zeichenfolge eine parametrisierte Abfrage oder ein parametrisierter Befehl ist, hängt der Platzhalter des Parameters ebenfalls vom verwendeten ADO.NET-Anbieter ab. Wenn der Anbieter z. B. der System.Data.SqlClientStandardanbieter für die SqlDataSource -Klasse ist, ist '@parameterName'der Platzhalter des Parameters . Wenn der Anbieter jedoch auf oder System.Data.OdbcSystem.Data.OleDbfestgelegt ist, ist '?'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 die SelectCommand Eigenschaft des SqlDataSourceView Objekts, das dem SqlDataSource Steuerelement zugeordnet ist.

Wichtig

Aus Sicherheitsgründen 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 Sicherheitsanfälligkeit bezüglich der Offenlegung von Informationen führen.

Wichtig

Werte werden ohne Überprüfung in Parameter eingefügt, was eine potenzielle Sicherheitsbedrohung darstellt. Verwenden Sie das Filtering -Ereignis, um Parameterwerte vor dem Ausführen der Abfrage zu überprüfen. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Gilt für:

Weitere Informationen