2012-03-28 8 views
0

を使用してSQL Server 2008で完全なXMLを挿入します私のC#のロジックエラーこんにちは、私はタイプXML</p> <p>の提出SQL ServerテーブルへのXMLファイルを挿入しようとしていますが、これは</p> <p>以下のように、これは私にエラーを与えているEntity Frameworkの

using (Entities context = new Entities()) 
      { 
       context.usp_BF_StoreEligibilityResponse(ID, XML); 
} 

は、これは私のストアドプロシージャ

UPDATE MyTable 
SET  ResponseXML = cast('<?xml version="1.0"?> 
<Interchange segment-terminator="~" element-separator="*" sub-element-separator="&gt;"> 
    <ISA> 
    <!--Author Information Qualifier--> 
    <ISA01>00<!--No Authorization Information Present--></ISA01> 
    <!--Author Information--> 
    <ISA02>   </ISA02> 
    <!--Security Information Qualifer--> 
    <ISA03>01<!--Password--></ISA03> 
    <!--Security Information--> 
    <ISA04>JILITTQQPK</ISA04> 
    <!--Interchange ID Qualifier--> 
    <ISA05>ZZ<!--Mutually Defined--></ISA05> 
    <!--Interchange Sender ID--> 
    <ISA06>S00000000000001</ISA06> 
    <!--Interchange ID Qualifier--> 
    <ISA07>ZZ<!--Mutually Defined--></ISA07> 
    <!--Interchange Receiver ID--> 
    <ISA08>T00000000021261</ISA08> 
    <!--Interchange Date--> 
    <ISA09>120328</ISA09> 
    <!--Interchange Time--> 
    <ISA10>1539</ISA10> 
    <!--Inter Control Standards Identifier--> 
    <ISA11>&#x1F;</ISA11> 
    <!--Inter Control Version Number--> 
    <ISA12>00501</ISA12> 
    <!--Inter Control Number--> 
    <ISA13>021443719</ISA13> 
    <!--Acknowlegment Requested--> 
    <ISA14>0<!--No Acknowledgment Requested--></ISA14> 
    <!--Usage Indicator--> 
    <ISA15>T<!--Test Data--></ISA15> 
    <!--Component Element Separator--> 
    <ISA16> 
     <ISA1601 /> 
     <ISA1602 /> 
    </ISA16> 
    </ISA> 
    <TA1> 
    <!--Interchange control number--> 
    <TA101>0fa080e2-</TA101> 
    <!--Interchange Date--> 
    <TA102>120328</TA102> 
    <!--Interchange Time--> 
    <TA103>1639</TA103> 
    <!--Interchange ACK Code--> 
    <TA104>R<!--Interchange rejected/suspended--></TA104> 
    <!--Interchange Note Code--> 
    <TA105>018</TA105> 
    </TA1> 
    <IEA> 
    <!--Number of Included Functional Groups--> 
    <IEA01>0</IEA01> 
    <!--Interchange Control Number--> 
    <IEA02>021443719</IEA02> 
    </IEA> 
</Interchange>' AS XML) 
WHERE EligibilityID = 13 

エラーメスであります年齢

Msg 9420, Level 16, State 1, Line 1 
XML parsing: line 25, character 17, illegal xml character 
    enter code here 

これは、私は、Visual StudioのXMLビューまたはHTMLビュー でプレビューするとき <ISA11>&#x1F;</ISA11>

このこのエラーの原因となって、それがこの<ISA11></ISA11>

答えて

0

エラーメッセージのような行でありますそれがすべてだと言います。 &#x1F;は無効なテキストシーケンスであるため、XMLは無効なXMLです。このようなテキストが必要な場合は、&amp;#x1F;と入力する必要があります(&amp;&シンボルのXMLエスケープシーケンス)。あるいは、文字列をCDATA(文字データ)セクション:<![CDATA[&#x1F;]]>で囲んでエスケープすることもできます。

+0

が正しい。私の問題は、このXMLが私のXMLRequestへの応答(サードパーティのサービスからのルーティング)で動的に生成されることです。これを私のテーブルに挿入しようとする前に、どのように検証してそのような問題を修正することができますか? – HaBo

+0

今のところ私はこのソリューションで暮らすことができます。私は文字列を&の代わりに&と置き換えました - ありがとうございます – HaBo

+0

@HaBoよく、修正する方法はあなたの状況によって異なります。 XMLプロセスの生成を制御できない場合は、他に選択肢はありませんが、テキスト形式で手動で修正してください。 –

関連する問題

 関連する問題