Autor Tema: Conectar con Firebird desde Vb.net  (Leído 1431 veces)

0 Usuarios y 1 Visitante están viendo este tema.

solilopi

  • Bit
  • Mensajes: 8
  • Reputación: +0/-0
    • Ver Perfil
Conectar con Firebird desde Vb.net
« en: Septiembre 06, 2017, 08:43:00 am »
Hola de nuevo, estoy migrando mi Bd de MySQL a Firebird y remodelando el programa que la gestiona y me acabo de topar con un problema que no entiendo puesto que, cuando atacaba a MySQL no daba problemas y ahona sí.
El código que me da problemas es en un botón donde muestro algunas consultas a la Bd. El código es:
Código: [Seleccionar]
Private Sub estadisticas_btn_Click(sender As Object, e As EventArgs) Handles estadisticas_btn.Click

        maximos_gb.Visible = True
        torta_grf.Visible = True

        Dim diasin As Integer = 0
        Dim valor As Decimal
        Dim totaldias As Integer = 0
        Dim totalrecorrido As Integer = 0
        Dim recorrido As String = ""
        Dim maxcalSQL As String = "SELECT MAX(a.calorias) FROM datos a"
        Dim maxDistanciaSQL As String = "SELECT MAX(a.distancia) FROM datos a"
        Dim repetidoSQL As String = "SELECT a.recorrido,COUNT(*)as veces,ROUND(AVG(a.distancia),2) FROM datos a GROUP BY a.recorrido ORDER BY veces desc"
        Dim velmaxSQL As String = "SELECT MAX(a.kmh)FROM datos a"
        Dim distmaxSQL As String = "SELECT SUM(a.distancia) FROM datos a"
        Dim maxdiasSql As String = "dias_sin"

        MiConexion.Open()

        'RELLENAMOS LOS VALORES MÁXIMOS

        Dim comando As FbCommand = New FbCommand(maxcalSQL, MiConexion)
        Dim comando1 As FbCommand = New FbCommand(maxDistanciaSQL, MiConexion)
        Dim comando2 As FbCommand = New FbCommand(repetidoSQL, MiConexion)
        Dim comando3 As FbCommand = New FbCommand(velmaxSQL, MiConexion)
        Dim comando4 As FbCommand = New FbCommand(distmaxSQL, MiConexion)
        Dim comando5 As FbCommand = New FbCommand(maxdiasSql, MiConexion)

        'AÑADO ESTO POR VER SI FUNCIONA PERO NO

        comando.CommandType = CommandType.Text
        comando1.CommandType = CommandType.Text
        comando2.CommandType = CommandType.Text
        comando3.CommandType = CommandType.Text
        comando4.CommandType = CommandType.Text
        comando5.CommandType = CommandType.StoredProcedure

        'HASTA AQUÍ LO AÑADIDO

        Dim lector As FbDataReader
        Dim lector1 As FbDataReader
        Dim lector2 As FbDataReader

        valor = CType(comando.ExecuteScalar(), Decimal)
        maxCal_tb.Text = Convert.ToString(valor)
        valor = 0
        valor = CType(comando1.ExecuteScalar(), Decimal)
        max_tb.Text = Convert.ToString(valor)

        lector = comando2.ExecuteReader
        lector.Read()

        masVeces_tb.Text = lector(0)
        veces_tb.Text = lector(1)
        km_tb.Text = lector(2)

        lector.Close()

        lector1 = comando3.ExecuteReader
        lector1.Read()
        velmax_tb.Text = lector1(0)
        lector1.Close()

        lector2 = comando4.ExecuteReader
        lector2.Read()
        disTotal_tb.Text = lector2(0)

        lector2.Close()

        'MOSTRAMOS LA MAYOR DIFERENCIA ENTRE SALIDAS

        totaldias = CType(comando5.ExecuteScalar(), Integer)
        maxSin_tb.Text = Convert.ToString(totaldias)

        MiConexion.Close()

        'PREPARAMOS EL GRÁFICO ESTADÍSTICO DE LAS SALIDAS

        Dim tortaSql As String = "select * from NPrimeros(7)"
        Dim dtorta As FbCommand = New FbCommand(tortaSql, MiConexion)
        dtorta.CommandType = CommandType.Text
        Dim datorta As New FbDataAdapter(dtorta)
        Dim dttorta As New DataTable

        datorta.Fill(dttorta)

        'LIMPIAMOS LOS PUNTOS X, Y DEL GRÁFICO

        torta_grf.Series(0).Points.Clear()

        'HACEMOS QUE APAREZCAN LOS VALORES SOBRE CADA PORCIÓN

        torta_grf.Series(0).IsValueShownAsLabel = True

        'TIPO DE GRÁFICO

        torta_grf.Series(0).ChartType = SeriesChartType.Doughnut
        torta_grf.Titles.Add("ESTADÍSTICA DE RECORRIDOS")

        'GRÁFICO 3D

        torta_grf.ChartAreas(0).Area3DStyle.Enable3D = True
        torta_grf.ChartAreas(0).BackColor = Color.Khaki
        torta_grf.ChartAreas(0).Area3DStyle.PointDepth = 300

        'COLOR DEL GRÁFICO

        torta_grf.Series(0).Color = Color.RoyalBlue

        'VALORES DE LOS EJES X e Y

        torta_grf.Series(0).XValueMember = "RECORRIDO"
        torta_grf.Series(0).YValueMembers = "veces"

        'ASIGNAMOS EL ORIGEN DE DATOS

        torta_grf.DataSource = dttorta

    End Sub
El error es: System.ArgumentException: 'No se ha encontrado la columna con el nombre 'RECORRIDO'.'

La Bd tiene los campos:
SALIDA_NUM -->Numérico auto incremental.
RECORRIDO--> Varchar(50)
TIEMPO-->Varchar (8)
DISTANCIA--> Decimal (5,2)
CALORIAS--> Decimal (6,2)
KMH--> Decimal (4,2)
FECHA--> Date

¿Alguien puede echarme un cable?. Gracias.