Bonjour à tous,

j'ai un problème sur lequel je me casse les dents depuis plusieurs jours. Je dois créer un programme qui lit un fichier csv et affiche les résultats dans un datagridview.
Le problème est mes lignes de codes sont fonctionnelles lorsque je teste le programme sous windows 7 et 8 mais le programme doit fonctionner sur des PC sous XP......et ça pas moyen de changer.
Sous windows 8, lorsque je lance mon programme, les données s'affichent bien dans le datagridview par colonne (77 au total) et avec le nombre de ligne correct, mais sous windows XP ça n'apparait que sur une seule colonne.

Pouvez-vous m'aider svp ? Je programme en vb.net.

Merci d'avance pour votre aide

Voici les lignes de codes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim dt As DataTable
        '*** Read CSV to DataTable ***'
        dt = CsvCreateDataTable("F:\", "ExportAnomalies2300.csv")
 
        ' verif(dt)
 
        DataGridView2.DataSource = dt
 
        '*** Insert to Database ***'
        '     InsertToDatabase(dt)
 
    End Sub
 
'*** Convert CSV to DataTable ***'
    Function CsvCreateDataTable(ByVal strPath, ByVal strFilesName) As DataTable
        Dim objConn As New OleDbConnection
        Dim dtAdapter As OleDbDataAdapter
        Dim dt As New DataTable
 
        Dim strConnString As String
        strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\;Extended Properties='TEXT;HDR=Yes;FMT=Delimited;Format=Delimited(,)'"
        objConn = New OleDbConnection(strConnString)
        objConn.Open()
 
        Dim strSQL As String
        strSQL = "SELECT * FROM " & strFilesName
 
        dtAdapter = New OleDbDataAdapter(strSql, objConn)
        dtAdapter.Fill(dt)
 
        dtAdapter = Nothing
 
        objConn.Close()
        objConn = Nothing
 
        Return dt '*** Return DataTable ***'
 
    End Function
Pour info, je charge le fichier dans un datagridview filtré car le traitement est beaucoup plus rapide que d'attendre le chargement dans une base access (le fichier csv comporte 80000 lignes environs ).

J'ai sinon crée un prog pour lancer directement l'import du fichier csv dans access, ce qui est très rapide mais ça implique que chaque poste qui utilise le programme est access installé et ce n'est pas possible.