2017-03-22 2 views
0

こんにちは私は&という文字を含むフィールドデータを持っていますが、そのデータが読み込まれてからAzure SQLデータベース&のシンボルは&に置き換えられますので、データは1&2です。Azureがこれをやっているのはなぜですか?SQL Azureデータベースに挿入すると、SQLデータフィールドの&文字の可変データに&が読み込まれます

  strcpy(s, "select ta.Tank_Id, ta.Fish_Id, ta.Date_Assigned, t.Group_Name from Tank_Assignment as ta join Tank as t on t.Tank_Id = ta.Tank_Id join Tank_Group as tg on tg.Group_Name = t.Group_Name where ta.Date_UnAssigned is null"); 
      sprintf(&s[strlen(s)], " and tg.Site_Name = '%s' ORDER BY ta.Tank_Id", Site_Name); 
      sql->exec_direct(s); 

      if (!sql->success() && sql->ret != 100) { 
       DisplaySQLError(hW, sql, s); 
      } 
      while (sql->success() && sql->fetch() == MSQL_SUCCESS) { 
       sql->get_col_str("Tank_Id", sTank_Id); 
       sql->get_col_str("Fish_Id", sFish_Id); 
       sql->get_col_str("Date_Assigned", sDate_Assigned); 
       sql->get_col_str("Group_Name", sGroup_Name); 

       strcpy(s, "insert into sqlazure.ha.dbo.itank"); 
       strcat(s, " (Tank_Id,Fish_Id,Date_Assigned,Feed,Morts,Moved,Enviro,Weight,Group_Name,User_Id) "); 
       sprintf(&s[strlen(s)], " VALUES('%s',", sTank_Id); 
       sprintf(&s[strlen(s)], " '%s',", sFish_Id); 
       sprintf(&s[strlen(s)], " '%s',", sDate_Assigned); 
       sprintf(&s[strlen(s)], " '%s',", "null"); 
       sprintf(&s[strlen(s)], " '%s',", "null"); 
       sprintf(&s[strlen(s)], " '%s',", "null"); 
       sprintf(&s[strlen(s)], " '%s',", "null"); 
       sprintf(&s[strlen(s)], " '%s',", "null"); 
       sprintf(&s[strlen(s)], " '%s',", sGroup_Name); 
       sprintf(&s[strlen(s)], " '%s')", _szUsername); 
       sql2->exec_direct(s); 

       if (!sql2->success() && sql2->ret != 100) { 
        DisplaySQLError(hW, sql, s); 
       } 

      } 
      sql->end_fetch(); 

答えて

0

これは、いくつかの文字は特別な意味を持つので、エスケープする必要があります、またはあなたの文字列が使用する文字エンコーディングによってカバーされていない文字を使用しているHTML、XHTMLやXMLに関連して起こります。

エンティティと呼ばれる代替コードを示すfind a lot of lists like thisとなります。言い換えれば...

ほとんどいつも

<>&ていますが、より多くのがあります。これは狂気ではありませんが、あなたのデータを読み取る方法の質問です。

+0

これは私のsave with SQL文が正しくSQL 2106データベースエンジンに置かれていますが、SQL Azureに保存されたときに変更されているので、違いがあります。sql azureはそれを変更しています。それを修正する方法について私は答えが必要です。 –

+0

@RobertPeterBronsteinあなたのステートメントは、すべての文字列**を逃げ出さないようにXMLコンテナ内で送信することができます。もう一度:私はかなり確信しています。この問題は、送信側(ステートメントの作成場所)ではなく、読者側(ステートメントが解釈される側)で解決されなければならないということです。 – Shnugo

+0

グリッドビューであることが判明しましたが、データベースではわかりません。 –

0

私の悪い、SQL Azureのデータは、SQLと同じである2016年問題は、ASPのGridViewのそのは&を表示していましたし、それはセッション値でそれを読んでいるとき、それは私が今停止する必要が&が含まれていますグリッドにこれらの文字が表示されるようになりました。野生のガチョウの追跡にごめんなさい。

0

aspグリッドビューには余分なアンプは表示されませんでした。あなたがtankrow.Cells [2] .Text;あなたがHttpUtility.HtmlDecode(tankrow.Cells [2] .Text)を使用している間にそれを追加します。それはそれを取り除く。

関連する問題