Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Každý zprostředkovatel dat rozhraní .NET Framework, který je součástí rozhraní .NET Framework, má vlastní objekt příkazu, který dědí z DbCommand. Zprostředkovatel dat rozhraní .NET Framework pro OLE DB obsahuje objekt OleDbCommand, zprostředkovatel dat rozhraní .NET Framework pro SQL Server obsahuje objekt SqlCommand, zprostředkovatel dat rozhraní .NET Framework pro rozhraní ODBC obsahuje objekt OdbcCommand a zprostředkovatel dat rozhraní .NET Framework pro Oracle obsahuje objekt OracleCommand. Každý z těchto objektů zveřejňuje metody pro spouštění příkazů na základě typu příkazu a požadované návratové hodnoty, jak je popsáno v následující tabulce.
| Příkaz | Návratová hodnota |
|---|---|
ExecuteReader |
Vrátí objekt DataReader. |
ExecuteScalar |
Vrátí jednu skalární hodnotu. |
ExecuteNonQuery |
Spustí příkaz, který nevrací žádné řádky. |
ExecuteXMLReader |
Vrátí XmlReader. K dispozici pouze pro objekt SqlCommand. |
Každý objekt příkazu silného typu rovněž podporuje výčet CommandType, který určuje, jak má být řetězec příkazu interpretován, jak je to uvedeno v následující tabulce.
| TypPříkazu | Popis |
|---|---|
Text |
Příkaz SQL definující příkazy, které se mají spustit ve zdroji dat. |
StoredProcedure |
Název uložené procedury. Vlastnost Parameters příkazu můžete použít pro přístup ke vstupním a výstupním parametrům a návratovým hodnotám bez ohledu na to, který Execute metoda je volána. Při použití ExecuteReadernebudou návratové hodnoty a výstupní parametry přístupné, dokud DataReader nezavřete. |
TableDirect |
Název tabulky. |
Příklad
Následující příklad kódu ukazuje, jak vytvořit SqlCommand objekt pro spuštění uložené procedury nastavením jeho vlastností. Objekt SqlParameter slouží k určení vstupního parametru uložené procedury. Příkaz se spustí pomocí metody ExecuteReader a výstup z SqlDataReader se zobrazí v okně konzoly.
static void GetSalesByCategory(string connectionString,
string categoryName)
{
using (SqlConnection connection = new(connectionString))
{
// Create the command and set its properties.
SqlCommand command = new()
{
Connection = connection,
CommandText = "SalesByCategory",
CommandType = CommandType.StoredProcedure
};
// Add the input parameter and set its properties.
SqlParameter parameter = new()
{
ParameterName = "@CategoryName",
SqlDbType = SqlDbType.NVarChar,
Direction = ParameterDirection.Input,
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($"{reader[0]}: {reader[1]:C}");
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
}
}
Shared Sub GetSalesByCategory(ByVal connectionString As String, _
ByVal categoryName As String)
Using connection As New SqlConnection(connectionString)
' Create the command and set its properties.
Dim command As SqlCommand = New SqlCommand()
command.Connection = connection
command.CommandText = "SalesByCategory"
command.CommandType = CommandType.StoredProcedure
' Add the input parameter and set its properties.
Dim parameter As 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 reader As SqlDataReader = command.ExecuteReader()
If reader.HasRows Then
Do While reader.Read()
Console.WriteLine("{0}: {1:C}", _
reader(0), reader(1))
Loop
Else
Console.WriteLine("No rows returned.")
End If
End Using
End Using
End Sub
Příkazy pro řešení problémů
Zprostředkovatel dat rozhraní .NET Framework pro SQL Server přidává čítače výkonu, které umožňují detekovat přerušované problémy související s neúspěšnými spuštěními příkazů. Další informace naleznete v tématu Čítače výkonu.