Datový typ v dataGridView   otázka

VB.NET

Ahoj, přes OleDb načítám data z excelu do DatagridView. (vytvořím dataAdapter, naplním ním dataTable a tu zobrazím v DataGridView). Mám ale problém s datovým typem. Z excelu to bere myslím prvních 8 řádků a podle něj to urči datový typ. A to je kámen úrazu. Když na začátku budou všude čísla a třeba na řádku 20 bude text, datagridview zobrazí prázdnou buňku (protože ji nejde formátovat jako číslo). Jde něják nastavit aby se datový typ ověřoval podle všech načtených řádků a ne jenom u několika prvních?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Řešením by zřejmě bylo otevřít sešit přes appExcel.Workbooks.Open, obsah buňek načíst do dvourozměrného pole a to pak nalít do dataGridViewu. Sice to bude za cenu ztráty výkonu ale to mi u načtení nevadí (budu načítat 30 sloupců a 200 řádků). Spíše bych chtěl znát vaše názory zda to není moc velká prasečinka když tu máme OldeDb a ADO:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro upřesnění posílám kód kterým jsem to původně načítal (přes ole) a kde mi to dělá ty problémy. Načítání po řádcích (viz. výše) mi sice funguje, ale výkon je otřesný (což jsem čekal).

    Sub nacistDataZexcelu2(ByVal strFilePath)

        Dim ExcelTable As DataTable = New DataTable
        Dim ExcelSpojeni As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilePath & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")
        Dim ExcelAdapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("SELECT * FROM [List1$]", ExcelSpojeni)



        ExcelTable.Clear()

        Try
            ExcelAdapter.Fill(ExcelTable)
        Catch ex As Exception
            chybaOtevreniExcelu(strFilePath)
            Exit Sub
        Finally
            spojeni.Close()
        End Try
        frmAplikace.dgv4Import.DataSource = ExcelTable

    End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback