2012-05-02 9 views
0

現在、私は2つのコードサンプルを用意しています。データベースからテーブルを取り出し、それをDataSetに格納し、DataSetとXMLファイルをデスクトップに保存します。ASP.NETを介してdataSetからXMLファイルを保存する

他のコードは、Webページからファイルを保存します。私がやりたいことは、XMLファイルをインターネット経由で保存できるように、これら2つのコード例を組み合わせることです。

SqlDataAdapter adapter = new SqlDataAdapter(query, connectionString); 
      DataSet questionSet = new DataSet(); 
      adapter.Fill(questionSet, "Questions"); 

      questionSet.WriteXml("../../../../../Users/User/Desktop/MyTest"); 

これが正常にXML文書としての私のテーブルを保存し、自分のデスクトップに保存します:

はここのサンプルです。これが正常に私のブラウザを介してファイルを保存しますASP.NET

System.String filename = "myFile.txt"; 

        Response.ContentType = "text/xml"; 

        // initialize the http content-disposition header to 
        // indicate a file attachment with the default filename 
        // "myFile.txt" 
        System.String disHeader = "Attachment; Filename=\"" + filename + 
         "\""; 
        Response.AppendHeader("Content-Disposition", disHeader); 

        // transfer the file byte-by-byte to the response object 
        System.IO.FileInfo fileToDownload = new 
         System.IO.FileInfo("C:\\downloadJSP\\DownloadConv\\myFile.txt"); 
        Response.Flush(); 
        Response.WriteFile(fileToDownload.FullName);} 

を介してファイルを保存するための

code sample from the MSDN

私が理解する限り、.WriteXmlはdataSetからファイルを作成するようです。そのファイルを他のコードにスローし、代わりに.WriteXmlファイルをダウンロードするようブラウザに指示する方法はありますか?

このコードはすべて私にとって魔法のように見えますが、もう一度、それはPixieダストで知られている.NETです。

答えて

2

私はあなたが必要なのはこれですと信じて:

questionSet.WriteXml(Response.OutputStream); 

あなたはまだコンテンツタイプを設定したいのですが、あなたがこれを行うには、ファイルシステムを台無しにする必要はありません。

関連する問題