SqlDataSource.SelectCommand Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.