Bonjour à tous,
Voila j'ai un problème que je n'arrive pas à comprendre...
Dans mon programme j'essaye de récupérer les informations contenues dans une base de donnée access via un OleDbDataReader et de les afficher dans une ListBox...
Le problème est qu'il me renvoi une InvalidCastException lors de la lecture d'une ligne.
Voila le code utilisé:Voici l'erreur générée:
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 Imports System Imports System.Data Imports System.Data.OleDb Imports Microsoft.VisualBasic Public Class Form3 Inherits System.Windows.Forms.Form Dim connexion As OleDbConnection Dim commande As OleDbCommand Dim reader As OleDbDataReader Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub Private Sub Form3_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing Form1.Show() End Sub Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try connexion = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Film.mdb") commande = connexion.CreateCommand() commande.CommandText = "Select * From Film" connexion.Open() reader = commande.ExecuteReader() Do While reader.Read() ListBox1.Items.Add(reader.GetString(0)) Loop reader.Close() connexion.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Erreur Form3") My.Computer.FileSystem.WriteAllText("Erreur.log", TimeOfDay.ToString + ":" & ControlChars.CrLf + ex.ToString & ControlChars.CrLf, True) Form1.Close() End Try End Sub End Class
La ligne 30 correspond à ListBox1.Items.Add(reader.GetString(0))01/01/0001 20:51:29:
System.InvalidCastException: Le cast spécifié n'est pas valide.
à System.Data.OleDb.ColumnBinding.ValueString()
à System.Data.OleDb.OleDbDataReader.GetString(Int32 ordinal)
à WindowsApplication1.Form3.Form3_Load(Object sender, EventArgs e) dans D:\Visual Basic\ListeFilm\ListeFilm\Form3.vb:ligne 30
Merci d'avance pour votre aide.
Partager