nVarchar et SqlParameter
Je suis de développer une application qui doit prendre en charge plusieurs langues. Pour résoudre les caractères spéciaux de problème, je suis en utilisant NVarhcar pour mon champs de texte. Donc ma requête SQL pour un champ de texte est
insert into tbl_text(text)values(N'Chci tančit v oblasti')
Mon problème est de le mettre dans SqlCommand, ce qui est "insert into tbl_text(text)values(N@text)"
. Il enregistre "N@text"
dans la table DB, c'est sûr.
Savez-vous d'une certaine manière pour le faire? Je suis à l'aide de C# et SQL 2008.
Désolé si elle a du mal à comprendre ma question. Mon anglais est pauvre =/
- Comment est-ce que votre déclaration même travail? Je reçois
Msg 207, Level 16, State 1, Line 4 Invalid column name 'N@text'.
en essayant de reproduire l'insertion deN@text
dans letbl_text.text
colonne de dans SSMS.
Vous devez vous connecter pour publier un commentaire.
Ajouter(string, object) a été supprimée pour cette raison (à partir de Pablo Castro de l'équipe SQL Server):
Vous devez paramétrer votre insère avec SqlParameters qui vous permettent de spécifier le type de données de manière explicite. (Aussi, il vous permet d'économiser le mal de tête de trouver le serveur SQL injection d'attaque de votre requête a provoqué).
Exemple:
SqlParameterCollection.Add(string, object)
qui est une méthode de convenance. Vous devez vraiment être à l'aide deIDbCommand.CreateParameter()
au lieu d'instancierSqlParameter
directement et déposer les@
de votreSqlParameter
à réduire votre dépendance à l'égard de laSystem.Data.SqlClient
espace de noms :-p.Ne mettez pas de "N" avant le nom du paramètre, il est utilisé uniquement lors de l'utilisation constante de chaîne pour indiquer qu'elle est une chaîne unicode. Si votre requête doit être:
Utilisation SQLParameters.
Voici un exemple simple:
Ici est Simple Exemple