none
Obtener el valor que contiene una columna de una tabla.

    Question

  • Buenas quisiera comprobar el valor que contiene una columna de una determinada tabla de mi base de datos, lo he intentado, con DataTable y no se como acceder al valor

    Quiero hacer algo como esto:

    If Tabla.Rows.Item("Edad")=18
     'Procesar Codigo
    Else
    'Procesar Codigo
    End If
    siendo Tabla un DataTable, estoy usando SQLServer Express 2008

    pero no hay manera de lograrlo :(

    De que forma lo podría hacer?

    Muchas gracias

    Friday, February 06, 2009 1:08 AM

Answers

  • Prueba este ejemplo: Cambiando la consulta y modificando el objeto conexion si te es necesario.

    Public Sub comprobar_edad()
        
    Try
            
    Dim sql as string="Select * from alumnos"
            Dim
    Datos As New SqlDataAdapter(sql
    , Conexion)
            
    Dim Resultado As New DataSet
            
    Conexion.Open()
            
    Datos.Fill(Resultado,
    "alumnos")
            Conexion.Close()
            
    If Resultado.Tables("alumnos").Rows.Count = 0 Then
                
    dim dila as datarow
                For each fila in resultado.tables("alumnos").rows
                    if fila("edad")=18 then
                        'Procesar código
                    else
                        'Procesar código
                    end if
                next
           
    End If
        Catch ex As Exception
            
    Throw New System.Exception(ex.Message, ex.InnerException)
        Finally
            
    conexion.Close()
        End Try
    End Sub

    Salu2

    Si la respuesta te sirvió de ayuda recuerda marcarla como correcta.


    nunca te acostarás sin saber una cosa más
    • Marked as answer by Chema1983 Friday, February 06, 2009 8:41 AM
    Friday, February 06, 2009 6:38 AM
  •  Hola, Chema:

    A diferencia de los viejos recordsets de ADO y DAO, o de los DataReader de ADO.NET, los DataTable presentan las filas como una Coleccion (DataRowCollection) de objetos DataRow. En cuanto colección, simplemente presenta los elementos contenidos para que "el cliente"los seleccione mediante un índice, que debe estar entre cero y .Count - 1.

    Puedes recorrerla con un ciclo For Each, como te sugiere Barbarroja, o con un ciclo basado en un contador:

    Dim i As Long 
     
    For i = 0 To laTabla.Rows.Count - 1  
      If laTabla.Rows(i).Item("Edad") = 18 Then 
        '...esto...  
      Else 
        '...lo otro
      End If
     
    Next 
     

    Salud!
    • Marked as answer by Chema1983 Friday, February 06, 2009 8:41 AM
    Friday, February 06, 2009 7:00 AM

All replies

  • Prueba este ejemplo: Cambiando la consulta y modificando el objeto conexion si te es necesario.

    Public Sub comprobar_edad()
        
    Try
            
    Dim sql as string="Select * from alumnos"
            Dim
    Datos As New SqlDataAdapter(sql
    , Conexion)
            
    Dim Resultado As New DataSet
            
    Conexion.Open()
            
    Datos.Fill(Resultado,
    "alumnos")
            Conexion.Close()
            
    If Resultado.Tables("alumnos").Rows.Count = 0 Then
                
    dim dila as datarow
                For each fila in resultado.tables("alumnos").rows
                    if fila("edad")=18 then
                        'Procesar código
                    else
                        'Procesar código
                    end if
                next
           
    End If
        Catch ex As Exception
            
    Throw New System.Exception(ex.Message, ex.InnerException)
        Finally
            
    conexion.Close()
        End Try
    End Sub

    Salu2

    Si la respuesta te sirvió de ayuda recuerda marcarla como correcta.


    nunca te acostarás sin saber una cosa más
    • Marked as answer by Chema1983 Friday, February 06, 2009 8:41 AM
    Friday, February 06, 2009 6:38 AM
  •  Hola, Chema:

    A diferencia de los viejos recordsets de ADO y DAO, o de los DataReader de ADO.NET, los DataTable presentan las filas como una Coleccion (DataRowCollection) de objetos DataRow. En cuanto colección, simplemente presenta los elementos contenidos para que "el cliente"los seleccione mediante un índice, que debe estar entre cero y .Count - 1.

    Puedes recorrerla con un ciclo For Each, como te sugiere Barbarroja, o con un ciclo basado en un contador:

    Dim i As Long 
     
    For i = 0 To laTabla.Rows.Count - 1  
      If laTabla.Rows(i).Item("Edad") = 18 Then 
        '...esto...  
      Else 
        '...lo otro
      End If
     
    Next 
     

    Salud!
    • Marked as answer by Chema1983 Friday, February 06, 2009 8:41 AM
    Friday, February 06, 2009 7:00 AM
  • Gracias Chicos

    Funcionó :D


    Un Saludo.
    Friday, February 06, 2009 8:42 AM