Bonjour,
Je me connecte en ODBC sur AS400 sur le fichier medcpof/sptml0.
Quand j'essai de lire le champ de type caractère qui m’intéresse je reçois une erreur alors que quand j'essaye avec un autre champ, ça fonctionne.
Voici le code
L'erreur est sur la ligne: MsgBox(dtr.GetString(47).ToString)
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
41
42
43
44
45
46 Imports System.Data.OleDb Public Class Form1 Dim conn As New OleDbConnection Dim str_requete As String Dim cmd As New OleDbCommand Dim dta As OleDbDataAdapter '//Représente un ensemble de commandes de données utilisées pour remplir un dataset/mettre à jour une base de donnée MySQL Dim dts As New DataSet '//Dataset Dim dtr As OleDbDataReader '//Un DataR Dim sConnString As String = "Provider=IBMDA400;" & _ "Password=*****;" & _ "User ID=*******;" & _ "Data Source=192.168.250.10;" Function FONC_REQ_DTR_MYSQL(ByVal query As String) Try str_requete = query '\\On ouvre la connection If conn.State = 0 Then conn.Open() If Not (dtr Is Nothing) Then dtr.Close() '\\On execute la requete cmd = New OleDbCommand(str_requete, conn) dtr = cmd.ExecuteReader Return dtr Catch obj_erreur As OleDbException '\\Afficher le msg d'erreur MsgBox("Erreur dans la FONC_REQ_DTR_MYSQL de la classe Mysql: " & obj_erreur.Message) Return 0 End Try End Function Private Sub TEXTBOX_PAS_CARACT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_id_patient.KeyPress If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If txt_id_patient.Text <> vbNullString Then conn = New OleDbConnection(sConnString) Dim str_requete As String = "SELECT * FROM medcpof.sptml0 WHERE pbmrn =" + "'" + txt_id_patient.Text + "'" dtr = FONC_REQ_DTR_MYSQL(str_requete) If dtr.HasRows Then dtr.Read() MsgBox(dtr.GetString(47).ToString) End If End If End Sub End Class
Message d'erreur: Le cast spécifié n'est pas valide pourtant c' est du caractère
Exemple de donnée: dupont, gorge
D'avance merci
Partager