.NET MySqlCommand peut-il exploiter les variables définies par l'utilisateur MySQL ?
L'exécution d'une requête MySQL dans .NET à l'aide de MySqlAdapter peut poser des problèmes si la requête utilise variables définies par l'utilisateur.
Requête spécifique Tentative :
L'instruction SQL suivante tente d'attribuer des numéros de ligne à des lignes distinctes :
SELECT @rownum := @rownum +1 rownum, t . * FROM ( SELECT @rownum :=0 ) r, ( SELECT DISTINCT TYPE FROM `node` WHERE TYPE NOT IN ('ad', 'chatroom') )t
Exception rencontrée :
Lorsque cette requête est exécutée dans .NET, une exception se produit car la variable @rownum est interprétée comme un paramètre, ce qui nécessite une requête explicite. définition.
Solution :
Pour résoudre ce problème, il est nécessaire de préciser que les variables utilisateur sont autorisées dans la chaîne de connexion. Ceci peut être réalisé en ajoutant le paramètre suivant :
;Allow User Variables=True
Chaîne de connexion mise à jour :
sqlConnection.ConnectionString = "Data Source=localhost;Initial Catalog=myDb;Username=myUser;Password=myPwd;Allow User Variables=True";
Informations supplémentaires :
Cette solution est compatible avec les versions plus récentes du connecteur .NET pour MySQL. Pour plus de détails, reportez-vous à ce blog : [Comment utiliser les variables définies par l'utilisateur dans .NET avec MySQL] (blog lié).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!