none
Consulta VB.Net RRS feed

  • Pregunta

  • ExecuteNonQuery o Execute Scalar?

    Para que sirve cada una?


    Nestor Davila Muñoz
    Junior Developer (VB.Net-PostgreSQL-SQLite-ASP.Net)
    "No es mas grande aquel que nunca falla, si no el que nunca se da por vencido"
    jueves, 17 de marzo de 2011 18:27

Respuestas

  • SI ESTA BIEN EN ESE CODIGO, PERO OTRO EJEMPLO PARA QUE VEAS EL USO DE EXECUTEREADER

     

     

    Using sqlCNX As New SqlConnection(Pruebas)
      Try
      ' Abrir la conexión a Sql 
      sqlCNX.Open()
      ' Pasar la consulta sql y la conexión al Sql Command
      Dim sqlSTR As String = "SELECT COD_CAT,     CAT_DESCRIPCION " & _
         "FROM TBL_CATALOGOS " & _
         "WHERE CAT_TABLA='STATUS'"
      Dim cmd As New SqlCommand(sqlSTR, sqlCNX)
    
      Dim dr as new DataReader()
    
      dr = cmd.executereader
    
    
      if dr.read then
       text1.text = dr("COD_CAT").tostring
       text2.text = dr("CAT_DESCRIPCION").tostring
      End if
    
      catch ex as Exception
        MessageBox ex.message
      end try
    end using
    

     

    se cargan las cajas de texto con la consulta

    si te sirvio marca la respuesta como correcta


    Atentamente Walter Jimenez G
    jueves, 17 de marzo de 2011 19:32

Todas las respuestas

  • ExecuteNonQuery: se utiliza cuando la consulta SQL no te devuelve ningun valor, es decir cuando ejecutas las sentencias INSERT, UPDATE

    ExecuteScalar: es cuando en la consulta SQL solo traes un solo valor, es decir:

    SELECT count(*) from tabla  'esto devuelve un solor valor


    Atentamente Walter Jimenez G
    jueves, 17 de marzo de 2011 18:47
  •     Using sqlCNX As New SqlConnection(Pruebas)
          sqlCNX.Open()
    
          Dim cmdCTA As New SqlCommand
          cmdCTA.Connection = sqlCNX
          cmdCTA.CommandType = CommandType.StoredProcedure
          cmdCTA.CommandText = "SP_ADDCUENTASB"
    
    
          cmdCTA.Parameters.AddWithValue("@CUEALTA", Date.Today)
          cmdCTA.Parameters.AddWithValue("@CUEIDEMPLE", frmEmpleados.txtCodigo.Text)
          cmdCTA.Parameters.AddWithValue("@CUETIPO", cboType.Text)
          cmdCTA.Parameters.AddWithValue("@CUEBANCO", cboBco.Text)
          cmdCTA.Parameters.AddWithValue("@CUECUENTA", txtCuenta.Text)
          cmdCTA.Parameters.AddWithValue("@CUEESTADO", cboEstado.Text)
    
          Convert.ToInt32(cmdCTA.ExecuteNonQuery())
          sqlCNX.Close()
    

    Saludos Walox...

     

    Entonces esto tengo bien?

     


    Nestor Davila Muñoz
    Junior Developer (VB.Net-PostgreSQL-SQLite-ASP.Net)
    "No es mas grande aquel que nunca falla, si no el que nunca se da por vencido"
    jueves, 17 de marzo de 2011 18:57
  • si en tu proceso estas insertando cuentas entonces esa es la forma correcta
    Atentamente Walter Jimenez G
    jueves, 17 de marzo de 2011 19:00
  • cuando estes llamando datos es decir estas usando un SELECT entonces utilizas el ExecuteReader
    Atentamente Walter Jimenez G
    jueves, 17 de marzo de 2011 19:02
  • En este caso lo hago asi para llenar un combo

        Using sqlCNX As New SqlConnection(Pruebas)
          Try
            ' Abrir la conexión a Sql 
            sqlCNX.Open()
            ' Pasar la consulta sql y la conexión al Sql Command
            Dim sqlSTR As String = "SELECT CAT_DESCRIPCION " & _
                        "FROM TBL_CATALOGOS " & _
                        "WHERE CAT_TABLA='STATUS'"
            Dim cmd As New SqlCommand(sqlSTR, sqlCNX)
            ' Inicializar un nuevo SqlDataAdapter  
            Dim da As New SqlDataAdapter(cmd)
            'Crear y Llenar un Dataset 
            Dim ds As New DataSet
            da.Fill(ds)
            ' asignar el DataSource al combobox 
            vCBO.DataSource = ds.Tables(0)
            ' Asignar el campo a la propiedad DisplayMember del combo  
            vCBO.DisplayMember = ds.Tables(0).Columns(0).Caption.ToString
          Catch ex As Exception
            MessageBox.Show(ex.Message.ToString, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
          Finally
            If sqlCNX.State = ConnectionState.Open Then
              sqlCNX.Close()
            End If
          End Try
        End Using
    

    Nestor Davila Muñoz
    Junior Developer (VB.Net-PostgreSQL-SQLite-ASP.Net)
    "No es mas grande aquel que nunca falla, si no el que nunca se da por vencido"
    jueves, 17 de marzo de 2011 19:11
  • SI ESTA BIEN EN ESE CODIGO, PERO OTRO EJEMPLO PARA QUE VEAS EL USO DE EXECUTEREADER

     

     

    Using sqlCNX As New SqlConnection(Pruebas)
      Try
      ' Abrir la conexión a Sql 
      sqlCNX.Open()
      ' Pasar la consulta sql y la conexión al Sql Command
      Dim sqlSTR As String = "SELECT COD_CAT,     CAT_DESCRIPCION " & _
         "FROM TBL_CATALOGOS " & _
         "WHERE CAT_TABLA='STATUS'"
      Dim cmd As New SqlCommand(sqlSTR, sqlCNX)
    
      Dim dr as new DataReader()
    
      dr = cmd.executereader
    
    
      if dr.read then
       text1.text = dr("COD_CAT").tostring
       text2.text = dr("CAT_DESCRIPCION").tostring
      End if
    
      catch ex as Exception
        MessageBox ex.message
      end try
    end using
    

     

    se cargan las cajas de texto con la consulta

    si te sirvio marca la respuesta como correcta


    Atentamente Walter Jimenez G
    jueves, 17 de marzo de 2011 19:32
  • ExecuteNonQuery: Ejecuta basicamente estas operaciones INSERT, DELETE, UPDATE y te devuelve el numero de filas afectadas. Tambien se puede usar ExecuteNonQuery para crear Tablas (CREATE), para Truncar Tablas (TRUNCATE), para hacer un DROP, y tambien  algo que es  muy importante en el tema de seguridad; se usa para Hacer BACKUP y RESTORE DE BASE DE DATOS.

     

    ExecuteScalar: Ejecuta un Comando y te retorna la primera fila.

    Se usa basicamente para funciones de agregado en SQL, tales como COUNT, AVG, SUM, MAX.

     

    Ojala haya aclarado tus dudas.


    Programador .NET - Desarrollador 5 Estrellas.
    sábado, 26 de marzo de 2011 0:48