Foros del Web » Programación para mayores de 30 ;) » .NET »

Datagrid, problema con campos booleanos

Estas en el tema de Datagrid, problema con campos booleanos en el foro de .NET en Foros del Web. Hola amigos, esto es algo tremendamente curioso y es que llevo un tiempo ya trabajando con bases de datos, muestro una tabla en mi aplicación ...
  #1 (permalink)  
Antiguo 15/11/2006, 04:19
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 8 meses
Puntos: 1
Pregunta Datagrid, problema con campos booleanos

Hola amigos,

esto es algo tremendamente curioso y es que llevo un tiempo ya trabajando con bases de datos, muestro una tabla en mi aplicación dentro de un datagrid... hasta aquí todo bien. Para los campos booleanos antes me mostraba un tic, y ahora me lo muestra en formato texto true/false y realmente no he cambiado nada de eso... es como q lo ha pasado a string pero sin q yo se lo haya indicado...

sabéis xq pasa esto y cómo solucionarlo??

graciasss

aquí está el código de la clase que muestra el datagrid (generado con ayuda del asistente):

Código:
Public Class Config
    Inherits System.Windows.Forms.Form
    'Public WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection

    'Conexiones a la base de datos
    Public Shared OleDbConnection1 As System.Data.OleDb.OleDbConnection


    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Try
            'Intente actualizar el origen de datos.
            Me.UpdateDataSet()
            Form1.CambiaTamanno()
            Me.Hide()
        Catch eUpdate As System.Exception
            'Agregar aquí el código de control de errores.
            'Mostrar mensaje de error, si hay alguno.
            System.Windows.Forms.MessageBox.Show(eUpdate.Message)
        Finally
            
        End Try

    End Sub
    Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
        Try
            'Intente cargar el conjunto de datos.
            Me.LoadDataSet()
        Catch eLoad As System.Exception
            'Agregar aquí el código de control de errores.
            'Mostrar mensaje de error, si hay alguno.
            System.Windows.Forms.MessageBox.Show(eLoad.Message)
        End Try

    End Sub
    Private Sub btnCancelAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelAll.Click
        Me.objverddifresh.RejectChanges()
        Me.Hide()
    End Sub
    Public Sub UpdateDataSet()
        'Crear un conjunto de datos para alojar los cambios realizados en el conjunto de datos principal.
        Dim objDataSetChanges As WindowsApplication1.verddifresh = New WindowsApplication1.verddifresh
        'Detener las ediciones actuales.
        Me.BindingContext(objverddifresh, "Propiedades").EndCurrentEdit()
        'Obtener los cambios realizados en el conjunto de datos principal.
        objDataSetChanges = CType(objverddifresh.GetChanges, WindowsApplication1.verddifresh)
        'Comprobar si se han realizado cambios.
        If (Not (objDataSetChanges) Is Nothing) Then
            Try
                'Hay cambios que necesitan aplicarse, por tanto, intente actualizar el origen de datos
                'llamando al método de actualización y pasando el conjunto de datos y los parámetros.
                Me.UpdateDataSource(objDataSetChanges)
                objverddifresh.Merge(objDataSetChanges)
                objverddifresh.AcceptChanges()
            Catch eUpdate As System.Exception
                'Agregar aquí el código de control de errores.
                Throw eUpdate
            End Try
            'Agregar código para comprobar en el conjunto de datos devuelto los errores que se puedan haber
            'introducido en el error del objeto de fila.
        End If

    End Sub
    Public Sub LoadDataSet()
        'Crear un conjunto de datos para alojar los registros devueltos de la llamada a FillDataSet.
        'Se utiliza un conjunto de datos temporal porque el relleno del conjunto de datos existente
        'requeriría que se volvieran a enlazar los enlaces de datos.
        Dim objDataSetTemp As WindowsApplication1.verddifresh
        objDataSetTemp = New WindowsApplication1.verddifresh
        Try
            'Intente rellenar el conjunto de datos temporal.
            Me.FillDataSet(objDataSetTemp)
        Catch eFillDataSet As System.Exception
            'Agregar aquí el código de control de errores.
            Throw eFillDataSet
        End Try
        Try
            grdPropiedades.DataSource = Nothing
            'Vaciar los registros obsoletos del conjunto de datos.
            objverddifresh.Clear()
            'Combinar los registros en el conjunto de datos principal.
            objverddifresh.Merge(objDataSetTemp)
            grdPropiedades.SetDataBinding(objverddifresh, "Propiedades")
        Catch eLoadMerge As System.Exception
            'Agregar aquí el código de control de errores.
            Throw eLoadMerge
        End Try

    End Sub
    Public Sub UpdateDataSource(ByVal ChangedRows As WindowsApplication1.verddifresh)
        Try
            'Sólo es necesario actualizar el origen de datos si hay cambios pendientes.
            If (Not (ChangedRows) Is Nothing) Then
                'Abra la conexión.
                Me.OleDbConnection1.Open()
                'Intente actualizar el origen de datos.
                OleDbDataAdapter1.Update(ChangedRows)
            End If
        Catch updateException As System.Exception
            'Agregar aquí el código de control de errores.
            Throw updateException
        Finally
            'Cerrar la conexión independientemente de si se inició una excepción o no.
            Me.OleDbConnection1.Close()
        End Try

    End Sub
    Public Sub FillDataSet(ByVal dataSet As WindowsApplication1.verddifresh)
        'Desactive la comprobación de restricciones antes de rellenar el conjunto de datos.
        'De esta forma los adaptadores pueden rellenar el conjunto de datos sin preocuparse
        'de las dependencias entre las tablas.
        dataSet.EnforceConstraints = False
        Try
            'Abra la conexión.
            Me.OleDbConnection1.Open()
            'Intente rellenar el conjunto de datos a través de OleDbDataAdapter1.
            Me.OleDbDataAdapter1.Fill(dataSet)
        Catch fillException As System.Exception
            'Agregar aquí el código de control de errores.
            Throw fillException
        Finally
            'Volver a activar la comprobación de restricciones.
            dataSet.EnforceConstraints = True
            'Cerrar la conexión independientemente de si se inició una excepción o no.
            Me.OleDbConnection1.Close()
        End Try

    End Sub
End Class
  #2 (permalink)  
Antiguo 15/11/2006, 05:20
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Holaa cielo !!

Bien, yo para valores booleanos no suelo usarlos, simplemente uso tipo de dato Integer de rango 1, es decir, que solo almacene valores 0 y 1 y luego si quiero mostrar una consulta SQL para que muestre en texto es el simple SELECT IF(campo=0,'FALSO','VERDADERO') as Prueba

Un besiño
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #3 (permalink)  
Antiguo 15/11/2006, 05:57
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
Iniciado por Korku Ver Mensaje
Holaa cielo !!

Bien, yo para valores booleanos no suelo usarlos, simplemente uso tipo de dato Integer de rango 1, es decir, que solo almacene valores 0 y 1 y luego si quiero mostrar una consulta SQL para que muestre en texto es el simple SELECT IF(campo=0,'FALSO','VERDADERO') as Prueba

Un besiño
Bueno parece q no les importa demasiado que en vez de hacer un clic haya q escribir true o false jejeje lo q pasa q es súper curioso lo q ha pasado y tengo curiosidad por saber a qué se debe ese cambio... la informática cada día me sorprende más jejeje

muxas gracias compiii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:02.