2010-08-11 9 views
1

J'essaie d'insérer une valeur dans la databse comme ceci:Insérez dans la base de données MySQL

command.CommandText = "INSERT INTO mail('" + s2[0] + "') values" + "('" + s2[1] + "')"; 

s2 [0] contient le nom du champ alors que s2 [1] contient la valeur. Je tiens à mentionner que la chaîne contenue dans s2 [0] correspond exactement au nom du champ de la table.

Ce qui semble être le problème? PS: j'aimerais aussi connaître l'exception à lancer si la table n'a pas de champ pour correspondre à s2 [0].

Répondre

1

juste enlever extra »de la chaîne après courrier

command.CommandText = "INSERT INTO mail(" + s2[0] + ") values" + "('" + s2[1] + "')"; 

essayer d'utiliser la commande SQL avec le sqlParameter

1

Vous avez essayé de citer le nom du champ avec des apostrophies. Ne fais pas ça - ce n'est pas une valeur, ça fait partie du SQL lui-même. Il vous manque également un espace entre "valeurs" et la parenthèse ouvrante de la collection de valeurs. Cela peut ou non causer un problème - pas sûr. Par exemple, actuellement votre insertion pourrait être quelque chose comme:

INSERT INTO mail('name') values('jon') 

au lieu de

Vous devez également utiliser une requête paramétrées pour éviter les attaques par injection SQL. C'est difficile à faire pour le nom de domaine, mais vous devriez certainement le faire pour la valeur. Espérons que le nom de domaine ne vient pas d'un utilisateur pour commencer.

Questions connexes