Comment insérer une chaîne de caractères ( ' ) dans la base de données sql?
J'ai les cordes, qui se compose de ( ' ) guillemet comme "amour de la mère" ...
Tout en insérant les données par des requêtes sql à partir de c#. Il indique une erreur. Comment puis-je résoudre le problème et d'insérer ce type de données avec succès?
string str2 = "Insert into tblDesEmpOthDetails (EmpID, Interviewnotes) values ('" + EmpId + "','" + Interviewnotes + "')";
Notes d'entrevue consiste en la valeur comme "amour de la Mère" (avec des guillemets simples). Lors de l'exécution de cette requête, il affiche le message d'erreur "Ouvrez les guillemets après la chaîne de caractères ')" comment puis-je insérer ce type de cordes?
montrer un peu de code s'il vous plaît.
Il n'y a pas une telle chose comme un base de données SQL -- SQL est juste le Structured Query Language, une langue utilisée par de nombreux systèmes de base de données, mais pas un produit de base de données... Nous avons vraiment besoin de savoir ce système de base de données (et quelle version) que vous utilisez....
MS sql est ma base de données
dans ce cas, je pense que nous pouvons conclure que l'OP est d'utiliser la concaténation pour former des requêtes, auquel cas le
Il n'y a pas une telle chose comme un base de données SQL -- SQL est juste le Structured Query Language, une langue utilisée par de nombreux systèmes de base de données, mais pas un produit de base de données... Nous avons vraiment besoin de savoir ce système de base de données (et quelle version) que vous utilisez....
MS sql est ma base de données
dans ce cas, je pense que nous pouvons conclure que l'OP est d'utiliser la concaténation pour former des requêtes, auquel cas le
'
à ''
astuce est probablement assez d'informations pour être dangereux. Paramètres sont les correct réponse ici.OriginalL'auteur Arun Kumar | 2012-06-20
Vous devez vous connecter pour publier un commentaire.
Je suis sûr que vous n'utilisez pas les paramètres SQL:
Sera-ce code fonctionne:
command.Parameters.AddWithValue("@codes", "'A','B','C'");
faut-il essayer et poser une nouvelle question sur DONC si il ne fonctionne pas comme vous l'attendez) Oui, je ne vois pas pourquoi cela ne fonctionne pas.
Merci. Je vais poster une question à ce sujet.
À partir de ce post j'ai trouvé ma réponse.
OriginalL'auteur Otiel
Utiliser des paramètres nommés et les SqlParameter.
De http://www.dotnetperls.com/sqlparameter
OriginalL'auteur Andy
Bien que, vous pouvez remplacer tous les caractères dans la chaîne de deux caractères ' ( " ), ce n'est pas une bonne idée. En raison de cette question, et beaucoup d'autres raisons (comme le fait d'éviter les attaques par injection SQL), vous devriez être en utilisant des paramètres nommés plutôt que d'ajouter de la valeur à vos instruction insert en concaténant directement dans la chaîne. Par exemple:
OriginalL'auteur Steven Doggart
Ajoutez cette ligne à une chaîne de votre tentative de saisie
vous dire de chaîne a été
puis test est maintenant
qui est syntaxiquement correct pour SQL
Ce qui concerne
Bien que cette adresse de l'auteur du problème que j'ai à downvote pour être une idée horrible.
Downvoted; alors qu'elle n'en résout ce problème particulier, il laisse ouvert encore plus grand.
OriginalL'auteur Eric Robinson
Comme une variante sur les réponses (très bien) point vous à paramètres: si cela vous semble beaucoup de travail, alors éviter avec un outil tel que dapper:
Dapper prendra automatiquement la
empId
etnotes
(à partir de l'objet anonyme) et de les ajouter nommé/paramètres typés. L'similairesQuery
/Query<T>
extension-méthodes permettent aussi facile et hautement optimisé interrogation directement dans un modèle objet.OriginalL'auteur Marc Gravell
Vous avez besoin pour utiliser double "
Cela permettra d'insérer O'something.
Un autre exemple, j'ai lu est:
Permet de supposer que nous avons une chaîne:
et si nous avons lastname quelque chose comme O'Brian, O'Reily etc. nous avons obtenu de la chaîne comme
la deuxième " ce sera la fin de l'instruction SQL. Donc la solution la plus simple consiste à utiliser une double " ensuite, nous allons avoir de la chaîne comme ceci:
Oui, j'ai entendu parler de ça. Je viens d'écrire ce simple examen pour expliquer double ".
Si vous allez à l'effort de la rendre plus claire cette méthode ne doit PAS être utilisé et expliquer la bonne façon de le faire, je vais enlever mon downvote.
OriginalL'auteur Jason Paddle
C'est simple. Vous utilisez la barre oblique inverse: "\". Par exemple:
"amour de la mère" doit être inséré en tant que "mère de l\'amour".
Je l'ai fait un nombre incalculable de fois avec mon propre site web.
OriginalL'auteur William Hou