Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/09/2015, 02:07
agami
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Vb.Net Excel y SQL

La cosa es que quieren una pequeña aplicacion de escritotio en la que ellos seleccionen el Excel y directamente les genere el resto.

He llegado hasta aquí, soy capaz de abrir el Excel, guardar los datos en un DataSet, pero a la hora de intentar mostrarlos en un GridView no hay manera.

Les dejo el codigo.

Código:
 Private Sub crgExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles crgExcel.Click
        Dim xls_cn As New OleDbConnection
        Dim xls_cmd As New OleDbCommand
        Dim xls_reader As New OleDbDataAdapter
        'Dim mysql_conn As New MySqlConnection
        'Dim mysql_comando As New MySqlCommand
        'Dim xls_sql, mysql_connstring, insert As String
        Dim xlsx As String

        xlsx = "S:\Q_Calidad\Trazabilidad Reel RI01099390 (3).xlsx"


                Dim strExtension As String = ""
                Dim nombreXls As String
                Dim m_Excel As Microsoft.Office.Interop.Excel.Application

                nombreXls = Path.GetFileName(xlsx)
                'obtener la extension del archivo
                strExtension = Path.GetExtension(xlsx)
                If strExtension = ".xls" Or strExtension = ".xlsx" Then
            ' MsgBox("es un archivo excel")
                    If (File.Exists(xlsx)) Then
                xls_cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'")

                        'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'"
                        'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + xlsx + ";Extended Properties='Excel 12.0;HDR=YES'"
                        m_Excel = CreateObject("Excel.Application")
                        m_Excel.Workbooks.Open(xlsx)

                Dim ds As New DataSet("Datos")

                        Using xls_cn

                            xls_cn.Open()
                    xls_cmd.CommandText = "SELECT * FROM [caf$]"

                            xls_cmd.Connection = xls_cn
                            xls_reader.SelectCommand = xls_cmd

                            'contar candidad de filas del excel

                            Dim total As Integer = m_Excel.Range("a1").CurrentRegion.Rows.Count
              
                    'Guardamos los datos en el DataSet
                    Dim da As New OleDbDataAdapter(xls_cmd)
                    da.Fill(ds)
                    If ds.Tables.Count = 0 Then 'Está vacío.
                        MessageBox.Show("Vacio")
                    Else
                        MessageBox.Show("LLEno")
                    End If


                End Using
                DataGridView1.AutoGenerateColumns = False
                MessageBox.Show("LLEGA")
                DataGridView1.DataSource = ds.Tables(0).DefaultView
                MessageBox.Show("AQUI")
            End If

        Else

            MsgBox("Introduzca un archivo .xls o .xlsx .")
            Exit Sub
        End If


    End Sub
Muchas gracias
__________________
Bienvenidos a una nueva era.