Gewusst wie: Ausführen einer parametrisierten gespeicherten Prozedur mithilfe von EntityCommand (EntityClient)
In diesem Thema wird anhand eines Beispiels gezeigt, wie eine parametrisierte gespeicherte Prozedur mithilfe von EntityCommand ausgeführt wird. In diesem Beispiel werden die gespeicherte Prozedur und das Datenmodell verwendet, die im Thema Gewusst wie: Definieren eines Modells mit einer gespeicherten Prozedur (Entity Framework) implementiert werden. Informationen über die Konfiguration eines Projekts und ein Beispiel zur Ausführung einer gespeicherten Prozedur mithilfe von Object Services finden Sie unter Gewusst wie: Ausführen einer Abfrage mithilfe einer gespeicherten Prozedur (Entity Framework).
Beispiel
Im folgenden Code wird eine parametrisierte gespeicherte Prozedur ausgeführt. Dabei ist SalesOrderHeaderId ein erforderlicher Parameter. Die Ergebnisse werden dann von EntityDataReader gelesen.
Using conn As EntityConnection = New EntityConnection("name=AdventureWorksEntities")
conn.Open()
Try
' Create an EntityCommand.
Using cmd As EntityCommand = conn.CreateCommand()
cmd.CommandText = "AdventureWorksEntities.GetOrderDetails"
cmd.CommandType = CommandType.StoredProcedure
Dim param As New EntityParameter()
param.Value = "43659"
param.ParameterName = "SalesOrderHeaderId"
cmd.Parameters.Add(param)
Using rdr As EntityDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
Do While rdr.Read
' Read the results returned by the stored procedure.
Console.WriteLine("Header#: {0} " & _
"Order#: {1} ProductID: {2} Quantity: {3} Price: {4}", _
rdr.Item(0), rdr.Item(1), rdr.Item(2), rdr.Item(3), rdr.Item(4))
Loop
End Using
End Using
Catch ex As EntityException
Console.WriteLine(ex.ToString())
End Try
conn.Close()
End Using
using (EntityConnection conn =
new EntityConnection("name=AdventureWorksEntities"))
{
conn.Open();
try
{
// Create an EntityCommand.
using (EntityCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "AdventureWorksEntities.GetOrderDetails";
cmd.CommandType = CommandType.StoredProcedure;
EntityParameter param = new EntityParameter();
param.Value = "43659";
param.ParameterName = "SalesOrderHeaderId";
cmd.Parameters.Add(param);
// Execute the command.
using (EntityDataReader rdr =
cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
// Read the results returned by the stored procedure.
while (rdr.Read())
{
Console.WriteLine("Header#: {0} " +
"Order#: {1} ProductID: {2} Quantity: {3} Price: {4}",
rdr[0], rdr[1], rdr[2], rdr[3], rdr[4]);
}
}
}
}
catch (EntityException ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
}