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

Vb.Net Excel y SQL

Estas en el tema de Vb.Net Excel y SQL en el foro de .NET en Foros del Web. Hola muy buenas! Traigo una dudita con VB.NET y es que estoy haciendo una pequeña aplicación para mi empresa, trata de que a través de ...
  #1 (permalink)  
Antiguo 08/09/2015, 05:36
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Vb.Net Excel y SQL

Hola muy buenas!

Traigo una dudita con VB.NET y es que estoy haciendo una pequeña aplicación para mi empresa, trata de que a través de un archivo Excel de una columna y X filas yo lo recoja con VB, busque los indices que hay en el Excel en la BBDD que tengo en SQL y saque X datos y complete el Excel.

Me explico, por ejemplo, en el A1 del Excel está el número 234529 por poner un ejemplo, lo tengo que recoger con VB, buscarlo en una tabla de la BBDD, y si existe, completar los datos en el Excel, si no existe, escribirlo en otra Excel de no encontrados.

Mi pregunta es, ¿Cómo consiguo recoger todos los indices que tengo en Excel y los guardo en un Array?

Muchas gracias por adelantado.
__________________
Bienvenidos a una nueva era.
  #2 (permalink)  
Antiguo 08/09/2015, 06:15
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Vb.Net Excel y SQL

Eso es algo que podrías hacer sin llegar a programar, simplemente usando las capacidades de interconexión de Office:

https://support.office.com/en-us/art...8-4c62f252da2e
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 09/09/2015, 02:07
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 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.
  #4 (permalink)  
Antiguo 09/09/2015, 14:04
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Vb.Net Excel y SQL

Te conviene olvidarte de todo eso y usar LINQ to Excel.

Y para acceso a datos (por ejemplo contra SQL Server o MySQL) te conviene usar Entity Framework.

Saludos.

Etiquetas: excel, sql
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 04:25.