none
Cargar DataGrid via SQL RRS feed

  • Pregunta

  •         Dim connRegistroMinuto As New OleDb.OleDbConnection
            Dim cmdRegistroMinuto As New OleDb.OleDbCommand
            Try
                connRegistroMinuto = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + NameFileRegistroMinuto + ";Persist Security Info=True;Jet OLEDB:Database Password=13579")
                cmdRegistroMinuto = New OleDb.OleDbCommand("", connRegistroMinuto)
                connRegistroMinuto.Open()

                Dim dsRegistrosMinuto As New DataSet

         SQLFiltroMinuto = "SELECT * FROM Registro"

                Dim adpRegistrosMinuto As New OleDb.OleDbDataAdapter(SQLFiltroMinuto, connRegistroMinuto)
                dsRegistrosMinuto.Tables.Add("Registro")

                adpRegistrosMinuto.Fill(dsRegistrosMinuto.Tables("Registro"))

                connRegistroMinuto.Close()
            Finally
                connRegistroMinuto.Dispose()
            End Try

    Con este código estoy pasando los datos de una base de datos a un DataGridView. Hay una columna que es un dato tipo bit (booleano). Me gustaría que en el DataGrid en vez de ver 1 ó 0, se vea un cartel Verdadero o Falso.

    Como lo puedo hacer?

    viernes, 9 de octubre de 2020 18:22

Respuestas

  • Si quieres que muestre "verdadero" o "falso" un buen truco es hacerlo en la propia sentencia sql, poniendo la operación sobre el campo. Es decir, algo parecido a esto:

    select campo1, campo2, IIF(campo3=1, "Verdadero", "Falso") As campo3, campo4, ... from Registro

    obviamente poniendo el nombre real de tus campos en lugar de campo1, campo2, etc.

    Si no puedes "jugar" con el SQL, otra alternativa es manipular el DataTable después de haber hecho el Fill. Puedes añadir una nueva columna con .Columns.Add (o .Insert), después usar un bucle para leer los valores de la columna que trae el 1 o el 0 y según el valor meter lo que quieras en la nueva columna, después borras la columna mala, y finalmente haces el data binding.

    viernes, 9 de octubre de 2020 18:30
  • Hola Osvaldo Luis Aven

    Gracias por levantar tu consulta en los foros de MSDN. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.

     

    Siempre es un placer atender tus consultas!

    --------------------------------------------------------------------------------

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    lunes, 12 de octubre de 2020 17:48
    Moderador

Todas las respuestas

  • Si quieres que muestre "verdadero" o "falso" un buen truco es hacerlo en la propia sentencia sql, poniendo la operación sobre el campo. Es decir, algo parecido a esto:

    select campo1, campo2, IIF(campo3=1, "Verdadero", "Falso") As campo3, campo4, ... from Registro

    obviamente poniendo el nombre real de tus campos en lugar de campo1, campo2, etc.

    Si no puedes "jugar" con el SQL, otra alternativa es manipular el DataTable después de haber hecho el Fill. Puedes añadir una nueva columna con .Columns.Add (o .Insert), después usar un bucle para leer los valores de la columna que trae el 1 o el 0 y según el valor meter lo que quieras en la nueva columna, después borras la columna mala, y finalmente haces el data binding.

    viernes, 9 de octubre de 2020 18:30
  • EXCELENTEEEEEEEEE!!!!!!

    Implementé lo del SELECT. Lo que sí, le saqué el = a 1. Pero anduvo grandioso!!!!

    SQLFiltroMinuto = "SELECT FechaYHora, PotenciaTotal, IIF(Alarma, 'Verdadero', 'Falso') As Alarmado, CorrienteFaseR, .......

    TE ESTOY MUY AGRADECIDO!!!!

    viernes, 9 de octubre de 2020 20:13
  • Hola Osvaldo Luis Aven

    Gracias por levantar tu consulta en los foros de MSDN. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.

     

    Siempre es un placer atender tus consultas!

    --------------------------------------------------------------------------------

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    lunes, 12 de octubre de 2020 17:48
    Moderador