Cómo ejecutar un procedimiento almacenado parametrizado usando EntityCommand (EntityClient)
En este tema se proporciona un ejemplo de cómo ejecutar un procedimiento almacenado parametrizado usando EntityCommand. En este ejemplo se utiliza el procedimiento almacenado y el modelo de datos implementados en Cómo definir un modelo con un procedimiento almacenado (Entity Framework). Para obtener información acerca de cómo configurar un proyecto, y un ejemplo de cómo se ejecuta un procedimiento almacenado usando Servicios de objeto, vea Cómo ejecutar una consulta con un procedimiento almacenado (Entity Framework).
Ejemplo
El código siguiente ejecuta un procedimiento almacenado parametrizado donde SalesOrderHeaderId es un parámetro necesario. Los resultados los lee después EntityDataReader.
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();
}