Bonjour,
j'ai écrit une procédure me permettant de faire ceci :
1/ Alimenter un DataSet à partir d'un fichier Xml
2/ Remplir une table de ma base de données SQL avec les données de la table du DataSet
Le première partie fonctionne sans problème.
Pour la seconde, elle fonctionne également sans erreur, mais lorsque j'affiche les données contenues dans la table de ma base (tblVilles), cette dernière contient des données bizarres : les 3 colonnes de la table sont : ID, Ville, CodePostal. Le champ ID contient bien un Guid comme attendu ; par contre le champ CodePostal ne contient qu'un seul chiffre et le champ Ville qu'une seule lettre !
Pourtant, avant l'exécution de la commande permettant l'insertion, les paramètres de la commande contiennent bien les valeurs souhaitées (je les ai affichées pour en être sûr). Voici le code :
Et voici le code de la procédure stocké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 Dim InsertCommand As New SqlClient.SqlCommand Dim MyConnection As New SqlClient.SqlConnection Dim Parameters(2) As SqlClient.SqlParameter MyConnection.ConnectionString = My.Settings.TCConnectionString InsertCommand.Connection = MyConnection InsertCommand.CommandType = CommandType.StoredProcedure InsertCommand.CommandText = "InsertVilles" Parameters(0) = New SqlClient.SqlParameter("@ID", SqlDbType.UniqueIdentifier) Parameters(1) = New SqlClient.SqlParameter("@CodePostal", SqlDbType.NVarChar) Parameters(2) = New SqlClient.SqlParameter("@Ville", SqlDbType.NVarChar) InsertCommand.Parameters.Add(Parameters(0)) InsertCommand.Parameters.Add(Parameters(1)) InsertCommand.Parameters.Add(Parameters(2)) Try MyConnection.Open() Dim r As DataRow For Each r In dstVilles.Tables(0).Rows Parameters(0).Value = Guid.NewGuid() Parameters(1).Value = r(0).ToString Parameters(2).Value = r(1).ToString 'Lorsque j'affiche le contenue des 3 paramètres ici, 'ils contiennent bien les valeurs attendues. InsertCommand.ExecuteNonQuery() Next MyConnection.Close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical And MsgBoxStyle.OkOnly, "Erreur lors de l'insertion SQL !") MyConnection.Close() End Try
Je n'arrive pas à comprendre ce qui se passe...?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ALTER PROCEDURE dbo.InsertVilles ( @ID uniqueidentifier, @CodePostal nvarchar, @Ville nvarchar ) AS BEGIN INSERT INTO dbo.tblVilles VALUES (@ID, @Ville, @CodePostal); END
Partager