2017-07-28 6 views
0

OracleストアドプロシージャからCLOBとしてXML文字列をC#stringに戻そうとしています。XmlWriterは私の文字列をトリミングする

次に、この文字列をXmlWriterクラスを使用してファイルに書き込みます。

私のコードは次のようになります。私はそれがのmyStringに完全に戻ります私のCLOB出力を確認

string myString= ((Oracle.ManagedDataAccess.Types.OracleClob)(cmd.Parameters["paramName"].Value)).Value.ToString(); 
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss"); 
var stream = new MemoryStream(); 
var writer = XmlWriter.Create(stream); 
writer.WriteRaw(myString); 
stream.Position = 0; 
var fileStreamResult = File(stream, "application/octet-stream", "ABCD"+fileName+".xml"); 
return fileStreamResult; 

最終結果を確認すると、最後にXMLファイルがトリミングされます。

私の弦は、例:弦の長さが3382563以上です。

XmlWriterが完全な文字列をファイルに書き込むための設定はありますか?

ありがとうございます。

+1

最初にXmlWriterがあるのはなぜですか?あなたはそれが何をすると思いますか? –

答えて

1

あなたがしたいことは、あなたのデータベースからいくつかの文字列値を取得し、その文字列値をテキストファイルに書き込むことです。文字列がxmlの場合、実際にXML固有の操作を実行しない限り、XML固有のクラスまたはメソッドを使用するように強制されません。これはスニペットには表示されません。したがって、文字列の値をつかんで、簡単にファイルに吐き出すことをお勧めします。

string myString = " blah blah blah keep my spaces "; 

using (StreamWriter sw = new StreamWriter(@"M:\StackOverflowQuestionsAndAnswers\XMLWriterTrimmingString_45380476\bin\Debug\outputfile.xml")) 
{ 
    sw.Write(myString); 
} 
関連する問題