Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: .NET Framework
.NET .NET
Standard
Der Microsoft SqlClient-Datenanbieter für SQL Server verfügt über ein SqlCommand-Objekt, das Elemente von DbCommand erbt. Dieses Objekt stellt Methoden zum Ausführen von Befehlen basierend auf dem Befehlstyp und dem gewünschten Rückgabewert zur Verfügung, wie in der folgenden Tabelle beschrieben.
| Get-Help | Rückgabewert |
|---|---|
ExecuteReader |
Gibt ein DataReader-Objekt zurück. |
ExecuteScalar |
Gibt einen einzelnen Skalarwert zurück. |
ExecuteNonQuery |
Führt einen Befehl aus, der keine Zeilen zurückgibt. |
ExecuteXMLReader |
Gibt einen XmlReader zurück. Nur für ein SqlCommand-Objekt verfügbar. |
Jedes stark typisierte Befehlsobjekt unterstützt auch eine CommandType-Enumeration, die angibt, wie eine Befehlszeichenfolge interpretiert wird. Nähere Informationen dazu finden Sie in der folgenden Tabelle.
| CommandType | Beschreibung |
|---|---|
Text |
Ein SQL-Befehl, der die Anweisungen definiert, die in der Datenquelle ausgeführt werden sollen. |
StoredProcedure |
Name der gespeicherten Prozedur Mit der Parameters-Befehlseigenschaft können Sie auf die Eingabe- und Ausgabeparameter sowie auf die Rückgabewerte zugreifen, und dies unabhängig davon, welche Execute-Methode aufgerufen wird. |
TableDirect |
Name der Tabelle |
Wichtig
Wenn Sie die ExecuteReader-Methode aufrufen, stehen die Rückgabewerte und die Ausgabeparameter jedoch erst zur Verfügung, wenn das DataReader-Objekt geschlossen ist.
Beispiel
Das folgende Codebeispiel zeigt, wie durch Festlegen seiner Eigenschaften ein SqlCommand-Objekt zum Ausführen einer gespeicherten Prozedur erstellt werden kann. Ein SqlParameter-Objekt wird zur Angabe des Eingabeparameters für die gespeicherte Prozedur verwendet. Der Befehl wird mit der ExecuteReader-Methode ausgeführt, und die Ausgabe des SqlDataReader wird im Konsolenfenster angezeigt.
static void GetSalesByCategory(string connectionString,
string categoryName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Create the command and set its properties.
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SalesByCategory";
command.CommandType = CommandType.StoredProcedure;
// Add the input parameter and set its properties.
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@CategoryName";
parameter.SqlDbType = SqlDbType.NVarChar;
parameter.Direction = ParameterDirection.Input;
parameter.Value = categoryName;
// Add the parameter to the Parameters collection.
command.Parameters.Add(parameter);
// Open the connection and execute the reader.
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
}
}
Problembehandlung bei Befehlen
Mit dem Microsoft SqlClient-Datenanbieter für SQL Server werden Diagnoseindikatoren hinzugefügt, mit denen Sie zeitweilige Probleme aufgrund von Fehlern bei der Befehlsausführung erkennen können. Weitere Informationen finden Sie unter Diagnoseindikatoren in SqlClient.