Problème de génération de fichier SQL
Résolu
beaulem_5904
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je suis à écrire une méthode qui génère un fichier SQL lors de l'import dans un table si un INT est vide il refuse d'importer et donne l'erreur : Une parenthèse gauche suivie d'un ensemble de valeurs était attendus. (near ";" at position 436). si je remplace manuellement les vide par "NULL" l'import se passe sans problème. Est-ce que je peux ajouter un "NULL" lors de la génération ?
le résultat actuel du fichier SQL est :
INSERT INTO `famille`(`numFamille`, `numEpoux`, `numEpouse`, `typeUnion`, `lieuUnion`, `dateUnion`) VALUES (4600, 346, 809, "MARRIED", 3, "5 JUN 1889"),
(4830, 812, 1673, "MARRIED", 8, "5 JUN 1917"),
(4832, 815, 1688, "MARRIED", 8, "25 MAY 1921"),
(4833, 816, 1701, "MARRIED", 10, "14 JUN 1927"),
(4834, 820, 1707, "MARRIED", , ""),
(4835, 1710, 821, "MARRIED", 11, "28 APR 1965"),
(5273, 3150, 1677, "MARRIED", 8, "28 JUN 1941")
private void btnlstFamilleConvert_Click(object sender, RoutedEventArgs e) { string filename = @"C:\Temp\Famille.sql"; string ligneEcrit; try { using (StreamWriter writer = new StreamWriter(filename)) { writer.Write("INSERT INTO `famille`(`numFamille`, `numEpoux`, `numEpouse`, `typeUnion`, `lieuUnion`, `dateUnion`) VALUES "); for (int i = 0; i < lstUnion.Items.Count; i++) { ligneEcrit = ("(" + ((Union)lstUnion.Items[i]).numFamille + ", " + ((Union)lstUnion.Items[i]).numEpoux + ", " + ((Union)lstUnion.Items[i]).numEpouse + ", \"" + ((Union)lstUnion.Items[i]).typeUnion + "\", " + ((Union)lstUnion.Items[i]).lieuUnion + ", \"" + ((Union)lstUnion.Items[i]).dateUnion + "\"), "); ligneEcrit = ligneEcrit.Substring(0, ligneEcrit.Length - 1); writer.WriteLine(ligneEcrit); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
le résultat actuel du fichier SQL est :
INSERT INTO `famille`(`numFamille`, `numEpoux`, `numEpouse`, `typeUnion`, `lieuUnion`, `dateUnion`) VALUES (4600, 346, 809, "MARRIED", 3, "5 JUN 1889"),
(4830, 812, 1673, "MARRIED", 8, "5 JUN 1917"),
(4832, 815, 1688, "MARRIED", 8, "25 MAY 1921"),
(4833, 816, 1701, "MARRIED", 10, "14 JUN 1927"),
(4834, 820, 1707, "MARRIED", , ""),
(4835, 1710, 821, "MARRIED", 11, "28 APR 1965"),
(5273, 3150, 1677, "MARRIED", 8, "28 JUN 1941")
Configuration: Windows / Chrome 99.0.4844.74
A voir également:
- Problème de génération de fichier SQL
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
Vu le résultat, je suspecte que tes champs soient en String.
Je te recommanderai plutôt de gérer la génération de la ligne dans une méthode dédiée, là où tu pourra controler les valeurs (si vide alors NULL).
Déjà niveau améliorations, à la place de :
Puis
Tu peux faire :
Puis
Je te recommanderai plutôt de gérer la génération de la ligne dans une méthode dédiée, là où tu pourra controler les valeurs (si vide alors NULL).
Déjà niveau améliorations, à la place de :
for (int i = 0; i < lstUnion.Items.Count; i++)
Puis
((Union)lstUnion.Items[i])
Tu peux faire :
foreach(Union lUnion in lstUnion.Items.OfType<Union>())
Puis
lUnion.TonChamp
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
tu souhaites, si lieuUnion est vide, le remplacer par "NULL"?
tu souhaites, si lieuUnion est vide, le remplacer par "NULL"?
c'est même une certitude puisqu'un int ne peut pas être null.