0

J'importe des termes d'une base de données contenant des caractères étrangers de toutes sortes. Quand j'ai des caractères japonais ou chinois, je ne peux pas exécuter une instruction de mise à jour sur la table car elle ne peut pas correspondre aux termes;codage de texte dans .net

sqlUpdate = "Update QueryData set LastSearchDate ='" & DateTime.Now.ToString & "'" & " 

where QueryTerms = '" & item & "'" 

l'élément est les termes de recherche et il fonctionne bien pour tous les autres caractères, sauf quand il est japonais. Maintenant, si je l'ai fait dans SQL Server 2005, je devrais mettre un N devant le terme pour trouver une correspondance.

select * from QueryData where queryTerms =N'だしの素' 

Y at-il un moyen de vérifier un codage de chaînes en .net afin que je puisse ensuite encoder avant d'exécuter la requête ou est-il un équivalent à la fonction N en .net il doit y avoir un moyen plus facile de gérer cela.

+0

Quel est le codage de la base de données? –

+0

la colonne pour les queryterms est nvarchar et le collation est sql-latin1 – vbNewbie

Répondre

2

Il est tout à fait possible que l'utilisation de requêtes paramétrées résoudra simplement votre problème - en plus de ne pas être vulnérable aux attaques par injection SQL. Gardez vos données (la valeur de la requête) loin de votre code (le SQL) - de cette façon, vous n'avez pas à tout représenter comme une chaîne, ce qui évite toutes sortes de problèmes.

Voir les documents pour SqlCommand.Parameters pour un exemple d'utilisation de requêtes paramétrées.

+0

Exactement ce que j'ai été tenté de répondre en voyant qu'il n'y avait pas de réponses, mais ensuite je me suis dit "je vais laisser Jon prendre celui-ci". – Bergius

+0

@Bergius: On ne sait jamais ... un jour quelqu'un posera une question comme celle-ci (ou peut-être une sur le passage des paramètres) * et je déciderai de ne pas répondre *. Peut-être que j'irai dehors et que je me promènerai dans l'air frais ou quelque chose du genre, chantant peut-être un show de Broadway stimulant, encourageant les passants à se joindre à moi pour se débarrasser des chaînes de la vie moderne. –

+0

laissez-moi essayer, merci, je reviendrai – vbNewbie