6
votes

C #, mysql, ado.net, délimiteur provoquant une erreur de syntaxe

J'ai le code C # qui cycle via .sql et exécute ce qui est à l'intérieur pour configurer une base de données.

Un .SQL est essentiellement comme suit: xxx

Lorsque je saisis cela dans la fenêtre de script du navigateur de la requête MySQL, il fonctionne parfaitement ... encore et encore, tout comme on le voudrait.

Toutefois, si je mettez la chaîne dans mon idbcommand et l'exécuter ... xxx

... Je reçois l'exception redoutée 1064 ...

Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à votre version de Server MySQL pour la bonne syntaxe à utiliser Proche 'Délimiter $$ Créer la procédure MyProc () Commencez ...

Donc, la question est ... Pourquoi MySQL me permet-il de le faire sans problèmes, mais quand j'essaie de le courir de C #, il échoue? Et bien sûr, la deuxième question est de savoir comment je suis censé le réparer.


0 commentaires

3 Réponses :


2
votes

0 commentaires

0
votes

Certaines commandes de votre script sont interprétées par BT le client MySQLK excusable avant que le SQL soit envoyé sur le serveur.

voir Commandes MySQL

En effet, tous les délimiteurs

Pour interpréter le script de C #, vous devrez écrire du code qui sait quelle est la commande, vous ne pouvez pas simplement transmettre la ligne Commandes par ligne sur le serveur.

E.g. Vous avez 3 commandes dans ce fichier et souhaitez appeler l'exécutenonquery seulement 3 fois

et de la gélification de partyclette, vous devez utiliser la classe mysqlscript


0 commentaires

9
votes

Pour ceux qui recherchent un extrait rapide ... xxx


1 commentaires

Pour ceux qui n'ont pas vu le changement évident .. Vous souhaitez utiliser un mysqlscript au lieu d'un mysqlCommand