none
Abriendo archivos excel (.xls) con OleDbConnection.Open(), APPCRASH RRS feed

  • Pregunta

  • Hola gente que tal...

    Estoy teniendo problemas cuando trato de abrir una conexión a un archivo .xls...

    En mi máquina funciona bien claro, en otras máquinas diferentes a la desarrolladora, la aplicación crashea, en los detalles cuando la aplicación deja de funcionar se puede leer "APPCRASH"... 

    Estos son los Imports que uso y en el cuadro esta la parte del código donde surge el error:

    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.IO
    Imports System.Threading
    Imports System.Collections.SortedList
    Imports System.Windows.Forms.Form

    Dim sConnectionString As String

    sConnectionString = _ "Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Abre.FileName &";"& _ "Mode=Share Deny None;" & _ "Extended Properties=""Excel8.0;HDR=Yes;ReadOnly=False;""" Dim DS As DataSet DS = New DataSet Try Using oledbConn As New OleDbConnection(sConnectionString) Dim oledbComand As New OleDbCommand(sqlExcel) 'sqlExcel contiene la instruccion SELECT... Dim DA As New OleDbDataAdapter(oledbComand) oledbComand.Connection = oledbConn oledbConn.Open() 'En esta instrucción la aplicación termina DA.Fill(DS) End Using Catch ex As Exception MsgBox("Error Try. " & ex.Message) End Try

    Cuestiones a tener en cuenta... En la máquina de prueba instale AccessDatabaseEngine porque por otro lado trabajo con una base de datos en Access. La aplicación la instalo mediante el setup, en la carpeta de la aplicación también está: 

    Microsoft.VisualBasic.PowerPacks.Vs.dll

    La conexión a la base de datos la hago en otra capa pero todavía no se si funciona bien porque no puedo ni pasar de esta parte ja...

    Una última cosa, como ven no les puedo decir que error da en ex.Message porque no sigue por ahí, se cuelga antes...

    Muchas gracias desde yaa, espero que me puedan ayudar :(

    • Cambiado Enrique M. Montejo viernes, 6 de julio de 2012 5:41 acceso a datos (De:Lenguaje VB.NET)
    martes, 3 de julio de 2012 17:06

Todas las respuestas

  • la aplicación crashea, en los detalles cuando la aplicación deja de funcionar se puede leer "APPCRASH"...

    pero cual seria el mensaje tal cual lo se obtiene?

    ademas como es que armas el sql que ejecutas?


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 3 de julio de 2012 17:12
  • Esto es el comando SQL: 

    Dim SheetName As String = Abre.SafeFileName.Remove(31) 'Abre es un New OpenFileDialog
    Dim sqlExcel As String = "SELECT * FROM [" & SheetName & "$]"

    Dejo dos fotos adjuntas del mensaje tal cual se obtiene:

    Primera:

    http://i1249.photobucket.com/albums/hh506/Gonzalo_Nediani/1.jpg

    Segunda:

    http://i1249.photobucket.com/albums/hh506/Gonzalo_Nediani/2.jpg

    martes, 3 de julio de 2012 18:13
  • ahora que mas claro con als imagenes

    no te animas a definir un control global de errrores

    [Winforms] Control global de Errores

    para asi poder mostrar cual es el mensaje real del problema que se produce

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 3 de julio de 2012 18:21
  • no te animas a definir un control global de errrores

    [Winforms] Control global de Errores

    para asi poder mostrar cual es el mensaje real del problema que se produce

    Tengo un problema, al parecer no genera un log:

    Esto es lo que tengo en la clase Program.vb


    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Windows.Forms
    Imports System.Threading
    Imports System.IO.Log
    Imports System.IO
    Imports System.Text
    NotInheritable Class Program
        Private Sub New()
        End Sub
        ''' <summary>
        ''' The main entry point for the application.
        ''' </summary>
        <STAThread()> _
        Friend Shared Sub Main()
            Application.EnableVisualStyles()
            Application.SetCompatibleTextRenderingDefault(False)
            AddHandler Application.ThreadException, AddressOf Application_ThreadException
            Application.Run(New Report())
        End Sub
        Private Shared Sub Application_ThreadException(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
            Using record As New FileRecordSequence("application.log", FileAccess.Write)
                Dim message As String = String.Format("[{0}]Message::{1} StackTrace:: {2}", DateTime.Now, e.Exception.Message, e.Exception.StackTrace)
                record.Append(CreateData(message), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
            End Using
        End Sub
        Private Shared Function CreateData(ByVal str As String) As IList(Of ArraySegment(Of Byte))
            Dim enc As Encoding = Encoding.Unicode
            Dim _array As Byte() = enc.GetBytes(str)
            Dim segments As ArraySegment(Of Byte)() = New ArraySegment(Of Byte)(0) {}
            segments(0) = New ArraySegment(Of Byte)(_array)
            Return Array.AsReadOnly(Of ArraySegment(Of Byte))(segments)
        End Function
    End Class

    Tal cual como esta en tu blog.

    El proyecto de inicio tiene "Sub Main" como objeto de inicio... Aunque es confuso porque no hay ninguna clase Sub Main, pero supongo que no tiene que ver con las clases y si lo detecta con el Friend Shared Sub Main...

    En fin, sigue colgandose de la misma manera y el log no se generó, algo estoy haciendo mal o me falta hacer..?

    martes, 3 de julio de 2012 19:41
  • Ya solucione el problema. La aplicación no se cuelga mas y todo parece funcionar bien... Que hice? Instalé el office en la máquina de prueba...

    Tal vez piensen que era algo obvio ya que manejo archivos .xls pero la idea es que el programa va a ir a muchos usuarios y talvez algunos tengan otro sistema operativo y un windows virtual o que no cuenten con el office... Ademas este programa es gratuito por lo que pagar por el office no es una opcion...

    Espero que alguien me pueda guiar con algún paquete para descargar para manejar los excel? Algun Excel SDK o algo asi?

    miércoles, 4 de julio de 2012 0:29
  • Ya solucione el problema. La aplicación no se cuelga mas y todo parece funcionar bien... Que hice? Instalé el office en la máquina de prueba...

    Tal vez piensen que era algo obvio ya que manejo archivos .xls pero la idea es que el programa va a ir a muchos usuarios y talvez algunos tengan otro sistema operativo y un windows virtual o que no cuenten con el office... Ademas este programa es gratuito por lo que pagar por el office no es una opcion...

    Espero que alguien me pueda guiar con algún paquete para descargar para manejar los excel? Algun Excel SDK o algo asi?

    miércoles, 4 de julio de 2012 0:33