2011-07-16 2 views
1

J'utilise azure aql comme backend pour une application Windows Phone que j'écris. J'expose le db en utilisant le protocole odata, et en utilisant la bibliothèque client odata pour lire et écrire db. J'ai un problème pour insérer des chaînes chinoises. Chaque charatcter chinois apparaîtra comme "?" dans le db. Ce qui suit est le code. À l'aide du débogueur, je peux dire, le caractère chinois est toujours dans le format d'écriture avant l'appel BeginSaveChanges. Le champ correspondant dans la base de données est défini comme nvarchar. Je peux mettre chinois sans problème depuis le portail de gestion web.Insérer chinois à l'aide du client odata à azure sql

NewJoke.Title = Regex.Replace(NewJoke.Title, "'", "''"); 
      NewJoke.Content = Regex.Replace(NewJoke.Content, "'", "''"); 
      dsc = new DataServiceContext(funnyJokesUri); 
      try 
      { 
       //Name of the entity goes into the first attribute of the AddObject method followed by the entity itself 
       //INSERTING 
       dsc.AddObject("Jokes", NewJoke); 
       dsc.BeginSaveChanges(insertJoke_Completed, dsc); 
      } 
+0

Le? Caractère apparaît où, dans la base de données ou sur le téléphone? Est-ce qu'il se perd quand vous l'affichez? –

+0

Le chinois perdu dans le db. Si je mets chinois dans le db à travers le portail web, les chinois étaient bien affichés sur le téléphone. Je ne peux pas insérer de chinois dans le db. – sunxin8086

+0

À travers quel portail web? D'où insérez-vous dans le db? –

Répondre

0

Vous devez définir le classement pour chinois sur la colonne, je pense. En savoir plus ... http://blogs.msdn.com/b/sqlazure/archive/2010/06/11/10023650.aspx

BTW - Je n'ai pas bien compris votre question - on dirait que vous dites que le db stocke le chinois quand vous utilisez le portail web pour l'insérer; mais sans doute, il ne stocke pas le chinois lorsque vous utilisez une autre méthode pour l'insérer. (?) Est-ce ce que vous dites?

+0

oui. Lorsque j'essaie d'insérer par programme à partir de mon application en utilisant la bibliothèque client odata, il apparaît dans le db comme "?" – sunxin8086