Maison > Article > base de données > Comment éviter les erreurs lors de l'insertion de données dans MySQL à l'aide de paramètres en C# ?
C# avec paramètres MySQL INSERT
Lorsqu'ils tentent d'insérer des données dans une base de données MySQL à l'aide de paramètres, les développeurs peuvent rencontrer des erreurs ou des problèmes. L'un de ces problèmes implique que la colonne « personne » ne soit pas autorisée à être nulle.
Utilisation de @ Parameters
Dans le code d'origine, la méthode Add est utilisée pour ajouter des paramètres au commandement. Toutefois, pour éviter d’éventuelles exceptions de référence nulle, il est recommandé d’utiliser plutôt la méthode AddWithValue. Cela garantit que la valeur du paramètre est explicitement attribuée, même si elle est nulle.
Par exemple :
comm.Parameters.AddWithValue("@person", "Myname"); comm.Parameters.AddWithValue("@address", "Myaddress");
Utiliser ? Paramètres
Une autre approche consiste à utiliser le ? syntaxe d'espace réservé pour les paramètres. Cette syntaxe peut être plus concise et lisible, en particulier lorsqu'il s'agit de plusieurs paramètres.
Par exemple :
comm.CommandText = "INSERT INTO room(person,address) VALUES(?person, ?address)"; comm.Parameters.Add("?person", "Myname"); comm.Parameters.Add("?address", "Myaddress");
Utilisation de MySqlDbType
Lorsque vous traitez avec des types de données spécifiques, il peut être avantageux de spécifier le MySqlDbType pour chaque paramètre. Cela offre une meilleure sécurité de type et peut aider à prévenir les problèmes potentiels de conversion de données.
Par exemple :
cmd.Parameters.Add("person", MySqlDbType.VarChar).Value = "myname"; cmd.Parameters.Add("address", MySqlDbType.VarChar).Value = "myaddress";
Solution résolue
Le code révisé fourni par l'utilisateur implique l'utilisation du ? syntaxe d'espace réservé avec les noms de paramètres corrects. Cela corrige l'erreur « L'index (base zéro) doit être supérieur ou égal à zéro et inférieur à la taille de la liste d'arguments ».
cmd.CommandText = "INSERT INTO room(person,address) VALUES(?person,?address)"; cmd.Parameters.Add("?person", MySqlDbType.VarChar).Value = "myname"; cmd.Parameters.Add("?address", MySqlDbType.VarChar).Value = "myaddress";
En utilisant la syntaxe de paramètre appropriée et en vous assurant que toutes les valeurs nécessaires sont attribués, les développeurs peuvent insérer avec succès des données dans les bases de données MySQL à l'aide de paramètres. Cette approche favorise la clarté du code, réduit le risque d'erreurs et améliore la sécurité des opérations de base de données.
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!