Cómo: Ejecutar un procedimiento almacenado que no devuelve valores
Actualización: noviembre 2007
Para ejecutar un procedimiento almacenado que no devuelva valores, puede ejecutar una consulta de TableAdapter configurada para ejecutar un procedimiento almacenado (por ejemplo, CustomersTableAdapter.UpdateTableData(CustomersDataTable)).
Si su aplicación no utiliza TableAdapters, llame al método ExecuteNonQuery en un objeto de comando, estableciendo su propiedad CommandType en StoredProcedure. (El objeto "Command" se refiere al comando concreto para el Proveedor de datos de .NET Framework que su aplicación está utilizando. Por ejemplo, si la aplicación utiliza el proveedor de datos de .NET Framework para el servidor SQL Server, el objeto de comando sería SqlCommand.)
Los siguientes ejemplos muestran cómo ejecutar procedimientos almacenados que no devuelven valores desde una base de datos utilizando TableAdapters u objetos de comando. Para obtener más información sobre cómo realizar consultas con TableAdapters y comandos, vea Información general sobre cómo rellenar conjuntos de datos y consultar datos.
Nota: |
---|
Los cuadros de diálogo y comandos de menú que se ven podrían ser distintos de los que se describen en la Ayuda, dependiendo de la configuración o edición activas. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio. |
Ejecución de procedimientos almacenados que no devuelven valores al utilizar un TableAdapter
Este ejemplo muestra cómo crear una consulta de TableAdapter mediante Asistente para la configuración de consultas de TableAdapter, y luego, proporciona información sobre cómo declarar una instancia del TableAdapter y ejecutar la consulta.
Para crear un procedimiento almacenado que no devuelve valores al utilizar un TableAdapter
Abra un conjunto de datos en el Diseñador de Dataset. Para obtener más información, vea Cómo: Abrir un objeto Dataset en el Diseñador de Dataset.
Si no tiene uno, cree un TableAdapter. Para obtener más información sobre la creación de TableAdapters, vea Cómo: Crear TableAdapters.
Si ya tiene una consulta en su TableAdapter que utiliza un procedimiento almacenado que no devuelve valores, avance al siguiente procedimiento, "Para declarar una instancia del TableAdapter y ejecutar la consulta". De lo contrario, continúe con el paso 4 para crear una nueva consulta que no devuelva valores.
Haga clic con el botón secundario del mouse en el TableAdapter deseado y utilice el menú de acceso directo para agregar una consulta.
El Asistente para la configuración de consultas de TableAdapter se abre.
Seleccione Usar el procedimiento almacenado existente, y luego, haga clic en Siguiente.
Seleccione un procedimiento almacenado en la lista desplegable y, a continuación, haga clic en Siguiente.
Seleccione la opción para devolver Sin valores, y a continuación, haga clic en Siguiente.
Proporcione un nombre para la consulta.
Haga clic en Siguiente o en Finalizar para finalizar el asistente; la consulta se agrega al TableAdapter.
Generar el proyecto.
Para declarar una instancia del TableAdapter y ejecutar la consulta
Declare una instancia de TableAdapter que contenga la consulta que desea ejecutar.
Para crear una instancia mediante las herramientas en tiempo de diseño, arrastre el TableAdapter que desee desde el Cuadro de herramientas. (Los componentes del proyecto aparecen ahora en el Cuadro de herramientas debajo de un encabezado que coincide con el nombre del proyecto.) Si el TableAdapter no aparece en el Cuadro de herramientas, quizá deba generar su proyecto.
O bien,
Para crear una instancia en código, reemplace el código siguiente con los nombres de DataSet y TableAdapter.
Dim tableAdapter As New DataSetTableAdapters.TableAdapter
Nota: Los TableAdapters no se encuentran dentro de sus clases de conjunto de datos asociadas. Cada conjunto de datos tiene una colección correspondiente de TableAdapters en su propio espacio de nombres. Por ejemplo, si tiene un conjunto de datos denominado SalesDataSet, habrá un espacio de nombres SalesDataSetTableAdapters que contiene los TableAdapters.
Llame a su consulta de la misma forma que llamaría a cualquier otro método en código. Su consulta es un método en el TableAdapter. Reemplace el siguiente código con los nombres de su TableAdapter y consulta. También necesitará pasar todos los parámetros requeridos por su consulta. Si no está seguro de si su consulta requiere parámetros, o qué parámetros requiere, busque en IntelliSense la firma necesaria de la consulta. Dependiendo de si su consulta acepta parámetros o no, el código se vería similar a uno de los siguientes ejemplos:
TableAdapter.Query()
TableAdapter.Query(Parameters)
El código completo para declarar una instancia del TableAdapter y ejecutar la consulta debe verse similar a lo siguiente:
Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter() Dim rowsAffected As Integer rowsAffected = CType(tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI"), Integer)
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); int rowsAffected = tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI");
Ejecución de procedimientos almacenados que devuelven valores al utilizar un objeto de comando
El ejemplo siguiente muestra cómo crear un comando y ejecutar un procedimiento almacenado que no devuelve valores. Para obtener información sobre cómo configurar y obtener valores de parámetro para un comando, vea Cómo: Establecer y obtener parámetros para objetos de comandos.
Este ejemplo utiliza el objeto SqlCommand y requiere:
- Hace referencia a los espacios de nombres System, System.Data y System.Xml.
Para ejecutar un procedimiento almacenado que no devuelve valores al usar un DataCommand
Agregue el código siguiente a un método desde donde desee que se ejecute el procedimiento almacenado. Llame al método ExecuteNonQuery de un comando para no devolver valores (por ejemplo, ExecuteNonQuery).
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim rowsAffected As Integer cmd.CommandText = "StoredProcedureName" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = sqlConnection1 sqlConnection1.Open() rowsAffected = cmd.ExecuteNonQuery() sqlConnection1.Close()
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); Int32 rowsAffected; cmd.CommandText = "StoredProcedureName"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = sqlConnection1; sqlConnection1.Open(); rowsAffected = cmd.ExecuteNonQuery(); sqlConnection1.Close();
Seguridad
La aplicación necesita permiso para tener acceso a la base de datos y ejecutar la instrucción SQL.
Vea también
Tareas
Cómo: Crear consultas de TableAdapter
Cómo: Editar consultas de TableAdapter
Cómo: Llenar un conjunto de datos con datos
Cómo: Establecer y obtener parámetros para objetos de comandos
Conceptos
Información general sobre cómo rellenar conjuntos de datos y consultar datos