私は100000以上のレコードをデモしようとすると、内部でメモリストリームクラスを保存するXml Documentオブジェクトではありません。XmlDocument.save()メソッドは、C言語を使用してMemoryStreamの100000以上のレコードを格納していません#
今回のエラーはメモリ不足例外が発生しています。
私は以下のデモを作成します。
はvrtual XMLファイルを作成し、私は内部のXmlDocumentを作成するには、最初のコードを説明し、私はあなたが直接SQLでXML変換を行うこととしたいバイト配列を選択してみてください可能性が
con.Open();
SqlCommand cmd = new SqlCommand("select top 1000000 * from
temp ", con);
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("root");
using (sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
XmlElement audit = doc.CreateElement("AuditHistory");
XmlElement rowId = doc.CreateElement("rowid");
rowId.InnerText = Convert.ToString(sdr["rowid"]);
audit.AppendChild(rowId);
XmlElement rowName = doc.CreateElement("rowname");
rowName.InnerText = Convert.ToString(sdr["rowname"]);
audit.AppendChild(rowName);
XmlElement rowCount = doc.CreateElement("rcount");
rowCount.InnerText = Convert.ToString(sdr["rcount"]);
audit.AppendChild(rowCount);
root.AppendChild(audit);
}
}
doc.AppendChild(root);
con.Close();
MemoryStream str = new MemoryStream();
doc.Save(str);
byte[] fileContent = str.ToArray();
str.Flush();
str.Close();
doc.save(str) inside out of memory exception is generate.
how can i resolve this issue.
私は、この内部のブラウザでダウンロードファイル私は1つのボタンをクリックし、ブラウザinside.i利用asp.netでダウンロードする第1の方法は、応答にすることができますバイナリ書き込みデータを爆破しない場合は、私のrequirment – PParmar
です。それ以外の場合は、メモリストリームを使用する代わりに、応答出力ストリームを 'XmlWriter.Create'に渡してレスポンスに直接書き込むことができ、メモリの問題は発生しません。 –
私は2000000データをこのコードの中に書いていません。私は大きなデータセット内にメモリストリームを書き込むのは限られていません。 – PParmar