Dans le fournisseur .NET MySQL, vous pouvez utiliser des paramètres nommés dans la syntaxe:Avec les paramètres nommés avec MySQL .NET Provider
?parametername
Maintenant, je suis en train de créer un paramètre nommé pour un paramètre qui sera être utilisé dans une liste 'IN', par exemple :
select * from mytable where id in (?ids)
Comment puis-je utiliser un paramètre nommé avec cela, si je l'utilise varchar, il va ajouter des citations avant et après la liste, à savoir .:
Si je passe la valeur du paramètre à l'aide varchar :
cmd.Parameters.Add("?ids", MySqlDbType.Varchar).Value = ids; // ids is a string which contains the ids separated by commas, e.g. 1, 2, 3 .. etc
la requête sera exécutée comme ceci:
select * from mytable where id in ('1, 2 ,3')
Bien sûr, cela renvoie une erreur, comment puis-je passer un paramètre nommé sans obtenir les guillemets, c'est la façon dont il doit être exécuté:
select * from mytable where id in (1, 2 , 3)
Y at-il solution de contournement pour cela? J'utilise actuellement String.Format() mais j'aimerais utiliser un paramètre nommé, est-ce possible de quelle façon?
P.S. J'utilise uniquement des instructions en texte brut, pas de sproc, donc rien de tout cela ne sera transmis à un sproc (juste au cas où vous pensez que ce n'est pas possible parce que les sprocs n'acceptent pas les tableaux)