Introducción
En este artículo veremos cómo asignar a un DataTable el resultado de ejecutar un procedimiento almacenado de SQL Server y el resultado mostrarlo en un control DataGridView.
El "truco" consiste en usar un objeto SqlDataAdapter y en el comando de selección indicarle el nombre del procedimiento almacenado, además de asignarle el "tipo" de comando a usar, cuyo valor debe ser: CommandType.StoredProcedure.
Después asignamos el DataTable a la propiedad DataSource del control DataGridView y ya está todo.
Este es el código para Visual Basic
La cadena de conexión está almacenada en el fichero app.config, pero para poder tener acceso a la clase
Settings debemos tener una importación del espacio de nombres de la aplicación o bien anteponerle a Settings el espacio de nombres usado en nuestra aplicación.
Settings debemos tener una importación del espacio de nombres de la aplicación o bien anteponerle a Settings el espacio de nombres usado en nuestra aplicación.
VB:
' Usar el procedimiento almacenado sp_PorFechaAlta ' Devuelve las filas que contengan una fecha igual o superior a la indicada ' El comando SQL es: ' SELECT Nombre, [e-mail], FechaAlta, Comentario FROM Prueba WHERE FechaAlta >= @FechaAlta ' Me.LabelNonQuery.Text = "Ejecutar P.A. que devuelve varias filas, (indica la fecha):" Try Dim dt As New DataTable Dim da As New SqlDataAdapter("sp_PorFechaAlta", My.Settings.conexion) da.SelectCommand.CommandType = CommandType.StoredProcedure da.SelectCommand.Parameters.Add("@FechaAlta", SqlDbType.DateTime) da.SelectCommand.Parameters("@FechaAlta").Value = CDate(Me.txtFecha.Text) da.Fill(dt) Me.dgvConsulta.DataSource = dt LabelStatus.Text = "Filas en el grid: " & dt.Rows.Count Catch ex As Exception Me.LabelNonQuery.Text = "Error: " & ex.Message LabelStatus.Text = "ERROR" End Try
amigo ke es o ke significa .cs_pruebasGuille?
ResponderEliminary ke kiere decir dgvconsulta?
Le cambie el nombre a conexion.
ResponderEliminarMy.Settings.conexion
se refiere a la cadena de conexion con la base de datos.