Bonjour,
Dans mon projet, je souhaite enregistrer les données saisies sur mon formulaire dans une base sql server. Notons aussi qu'il existe des champs de type date dans ma base. Pour cela j'ai utilisé des masktexbox en leur donnant un format. Le problème c'est que lors de la saisie, quand je rempli tous les champs date, tout s'enregistre,mais quand je les laisse vide j'ai un message d'erreur
Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères.
Voici le code qui me sert à enregistrer mes données
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
' Déclaration de la variable cmd
        ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
        Dim cmd As SqlCommand
        ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
        Dim sql_ajouter As String
        'vérification 
        If Me.Nom.Text = "" Or _
           Me.Prenom.Text = "" Then
 
 
            MessageBox.Show("Vous devez remplir tous les champs !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
            Matr_txt.Focus()
 
            Exit Sub
 
        End If
 
 
 
        ' On écrit notre requête et on l'assigne à la variable sql_ajouter
        sql_ajouter = "INSERT INTO Membre VALUES(@ID_Membre,@date_adhésion,@Nom,@Prenoms,@Date_naissance,@Habitation,@Sexe,@Pays,@Ville,@Langue_parlée,@Telephone,@Formation,@Celullaire,@Permis,@Nombre_enfant,@Type_membre,@Profession,@Statut_marital,@Departement,@Responsable,@Autre_departement,@photo)"
 
        ' Initialisation de la requête
        cmd = New SqlCommand(sql_ajouter, con)
 
        ' Ouverture de la connexion
 
        ' On définit les paramètres utilisés pour le bon déroulement de la requête
        ' On assigne à Val_Prenom" le texte contenu dans le textbox txt_ajouter_prenom
        cmd.Parameters.AddWithValue("@ID_Membre", Me.Matr_txt.Text)
        cmd.Parameters.AddWithValue("@date_adhésion", Me.Dat_adhtxt.Text)
 
        cmd.Parameters.AddWithValue("@Nom", Me.Nom.Text)
        cmd.Parameters.AddWithValue("@Prenoms", Me.Prenom.Text)
        cmd.Parameters.AddWithValue("@Date_naissance", Me.Dat_naisstxt.Text)
 
        cmd.Parameters.AddWithValue("@Habitation", Me.habit_txt.Text)
        cmd.Parameters.AddWithValue("@Sexe", Me.Sexe.Text)
        cmd.Parameters.AddWithValue("@Pays", Me.pays_txt.Text)
        cmd.Parameters.AddWithValue("@Ville", Me.ville_txt.Text)
        cmd.Parameters.AddWithValue("@Langue_parlée", Me.lang_parltxt.Text)
        cmd.Parameters.AddWithValue("@Telephone", Me.tel_txt.Text)
        cmd.Parameters.AddWithValue("@Formation", Me.formtxt.Text)
        cmd.Parameters.AddWithValue("@Celullaire", Me.cel_txt.Text)
        cmd.Parameters.AddWithValue("@Permis", Me.permitxt.Text)
        cmd.Parameters.AddWithValue("@Nombre_enfant", Me.nbr_enftxt.Text)
        cmd.Parameters.AddWithValue("@Type_membre", Me.typ_txt.Text)
        cmd.Parameters.AddWithValue("@Profession", Me.profess_txt.Text)
        cmd.Parameters.AddWithValue("@Statut_marital", Me.statmar_txt.Text)
        cmd.Parameters.AddWithValue("@Departement", Me.depart_txt.Text)
        cmd.Parameters.AddWithValue("@Responsable", Me.respo_txt.Text)
        cmd.Parameters.AddWithValue("@Autre_departement", Me.autrde_txt.Text)
 
        'gestion des photos
 
        Dim ms As New MemoryStream()
 
        PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
 
        Dim data As Byte() = ms.GetBuffer()
 
        Dim p As New SqlParameter("@photo", SqlDbType.Image)
 
        p.Value = data
 
        cmd.Parameters.Add(p)
 
        cmd.ExecuteNonQuery()
 
        MessageBox.Show("Membre enregistré avec succès!!", "Enregistré", MessageBoxButtons.OK)
 
        ' Ouverture de la connexion
 
        ' Exécution de la requête SQL
 
        ' Fermeture de la connexion
        cmd.Connection.Close()
 
 
        'fin essai
 
 
 
        'création et exécution du commandbuilder
        'pour mettre à jour le DataAdapter
        cmdb = New SqlCommandBuilder(dta)
 
        'mise à jour des données du DataAdapter
        'à partir du commandbuilder
        dta.Update(ds, "Membre")
 
        'on vide le dataset pour le recréer avec 
        'les nouvelles données 
        ds.Clear()
        dta.Fill(ds, "Membre")
        dtt = ds.Tables("Membre")
 
        'mise à jour de la datagrid
        DataGridView1.DataSource = ds.Tables("Membre")
        DataGridView1.Columns("photo").Visible = False
 
 
        'aller au début du fichier
        rownum = 0
 
        'affichage des données dans les texbox
        Me.Matr_txt.Text = dtt.Rows(rownum).Item("ID_Membre")
        Me.Dat_adhtxt.Text = dtt.Rows(rownum).Item("Date_adhésion")
        Me.Nom.Text = dtt.Rows(rownum).Item("Nom")
        Me.Prenom.Text = dtt.Rows(rownum).Item("Prenoms")
        Me.Dat_naisstxt.Text = dtt.Rows(rownum).Item("Date_naissance")
        Me.habit_txt.Text = dtt.Rows(rownum).Item("Habitation")
        Me.Sexe.Text = dtt.Rows(rownum).Item("Sexe")
        Me.pays_txt.Text = dtt.Rows(rownum).Item("Pays")
        Me.ville_txt.Text = dtt.Rows(rownum).Item("Ville")
        Me.lang_parltxt.Text = dtt.Rows(rownum).Item("Langue_parlée")
        Me.tel_txt.Text = dtt.Rows(rownum).Item("Telephone")
        Me.formtxt.Text = dtt.Rows(rownum).Item("Formation")
        Me.cel_txt.Text = dtt.Rows(rownum).Item("Celullaire")
        Me.permitxt.Text = dtt.Rows(rownum).Item("Permis")
        Me.profess_txt.Text = dtt.Rows(rownum).Item("Profession")
        Me.nbr_enftxt.Text = dtt.Rows(rownum).Item("Nombre_enfant")
        Me.typ_txt.Text = dtt.Rows(rownum).Item("Type_membre")
        Me.statmar_txt.Text = dtt.Rows(rownum).Item("Statut_marital")
        Me.depart_txt.Text = dtt.Rows(rownum).Item("Departement")
        Me.respo_txt.Text = dtt.Rows(rownum).Item("Responsable")
        Me.autrde_txt.Text = dtt.Rows(rownum).Item("Autre_departement")
        Dim c As Integer = ds.Tables("Membre").Rows.Count
        If c > 0 Then
            Dim bytBLOBData() As Byte = _
                            ds.Tables("Membre").Rows(0)("photo")
            Dim stmBLOBData As New MemoryStream(bytBLOBData)
            PictureBox1.Image = Image.FromStream(stmBLOBData)
        End If
 
        'activation des boutons
        cmd_premier.Enabled = True         'premier
        cmd_precedent.Enabled = True      'précédent
        cmd_suivant.Enabled = True       'suivant
        cmd_dernier.Enabled = True       'dernier
 
        cmd_modifier.Enabled = True
        cmd_supprimer.Enabled = True
        cmd_fermer.Enabled = True
 
        cmd_nouveau.Enabled = True
        cmd_enregistrer.Enabled = False      'valider
 
        cmd_nouveau.Text = "Nouveau"
    End Sub
Merci d'avance