none
VB .NET - Como se muestra los datos resueltos de ExecuteNonQuery RRS feed

  • Pregunta

  • Hola, estoy ejecutando una busqueda en la Base de Datos con procedimiento almacenado.

    1 - Procedimientos

    ALTER PROC [dbo].[SP_PESQUISACHAMADO]
    	(@ID_CHAMADO CHAR(8),
    	 @ID_FORNECEDOR CHAR(8)
    	)
    
        AS
    	SELECT ID_CHAMADO,ID_FORNECEDOR FROM CHAMADO
        WHERE ID_CHAMADO = @ID_CHAMADO
    	AND ID_FORNECEDOR = @ID_FORNECEDOR


    2 - Búsqueda

    Public Sub busquedaLlamado(ByVal objC As CEChamado) cn = objCon.conectar() Try cn.Open() da = New SqlDataAdapter("BUSQUEDALLAMADO", cn) da.SelectCommand.CommandType = CommandType.StoredProcedure With da.SelectCommand.Parameters .Add("@id_chamado", SqlDbType.Char).Value = objC.id_Chamado .Add("@id_fornecedor", SqlDbType.Char).Value = objC.id_Fornecedor End With da.SelectCommand.ExecuteNonQuery() ' ¿Como yo hago para que se muestre el que me devuelve da.SelectCommand.ExecuteNonQuery() ? ' Solo así seria posible evaluar lo datos del formulário MsgBox("Llamado no lo se há encuentra...", MsgBoxStyle.Information) Catch ex As Exception MsgBox("Llamado: " & objC.id_Llamado & "-" & objC.id_Fornecedor & " existe ...", MsgBoxStyle.Critical) Finally da.Dispose() cn.Dispose() End Try

    End Sub

    3 - Pregunta

    ¿Como yo hago para que se muestre el que me devuelve da.SelectCommand.ExecuteNonQuery() ?
      Solo así seria posible evaluar lo datos del formulário

    Gracias por ayudarme(Desde Brasil)


    JoseBonfim

    lunes, 11 de enero de 2016 17:30

Respuestas

  • Hola Jose,

    el método ExecuteNonQuery se utiliza para sentencias que no devuelven resultados como INSERTs o UPDATEs.

    En principio para recuperar los valores devueltos de una consulta no tienes más que ejecutar el método Fill del DataAdapter sobre un DataTable:

                With da.SelectCommand.Parameters
                    .Add("@id_chamado", SqlDbType.Char).Value = objC.id_Chamado
                    .Add("@id_fornecedor", SqlDbType.Char).Value = objC.id_Fornecedor
                End With
                Dim dt As New DataTable()
                da.Fill(dt)
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    lunes, 11 de enero de 2016 18:02
  • ¿Como yo hago para que se muestre el que me devuelve da.SelectCommand.ExecuteNonQuery() ?
      Solo así seria posible evaluar lo datos del formulário


    El método ExecuteNonQuery sirve para ejecutar una sentencia y NO DEVOLVER NADA. Si quieres ejecutar la llamada al procedimiento almacenado y recuperar los registros devueltos, entonces en lugar del ExecuteNonQuery hay que ejecutar un ExcecuteReader. Esto devuelve un SqlDataReader que puedes usar para iterar sobre los registros devueltos. Pero en lugar de hacer esto a mano, es más sencillo llamar al método Fill del DataAdapter (como ya te han señalado en otra respuesta). El Fill ya hace internamente una llamada a ExecuteReader e itera sobre los resultados devueltos cargándolos en el DataTable, evitándote tener que programar esta operación manualmente.
    lunes, 11 de enero de 2016 18:07

Todas las respuestas

  • Hola Jose,

    el método ExecuteNonQuery se utiliza para sentencias que no devuelven resultados como INSERTs o UPDATEs.

    En principio para recuperar los valores devueltos de una consulta no tienes más que ejecutar el método Fill del DataAdapter sobre un DataTable:

                With da.SelectCommand.Parameters
                    .Add("@id_chamado", SqlDbType.Char).Value = objC.id_Chamado
                    .Add("@id_fornecedor", SqlDbType.Char).Value = objC.id_Fornecedor
                End With
                Dim dt As New DataTable()
                da.Fill(dt)
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    lunes, 11 de enero de 2016 18:02
  • ¿Como yo hago para que se muestre el que me devuelve da.SelectCommand.ExecuteNonQuery() ?
      Solo así seria posible evaluar lo datos del formulário


    El método ExecuteNonQuery sirve para ejecutar una sentencia y NO DEVOLVER NADA. Si quieres ejecutar la llamada al procedimiento almacenado y recuperar los registros devueltos, entonces en lugar del ExecuteNonQuery hay que ejecutar un ExcecuteReader. Esto devuelve un SqlDataReader que puedes usar para iterar sobre los registros devueltos. Pero en lugar de hacer esto a mano, es más sencillo llamar al método Fill del DataAdapter (como ya te han señalado en otra respuesta). El Fill ya hace internamente una llamada a ExecuteReader e itera sobre los resultados devueltos cargándolos en el DataTable, evitándote tener que programar esta operación manualmente.
    lunes, 11 de enero de 2016 18:07
  • Asier Villanueva,

    Gracias por contestarme.
    Yo seguiré tu ejemplo para lograr exito.

    Saludos(desde Brasil)


    JoseBonfim

    lunes, 11 de enero de 2016 18:34