- - PR -
【ASP.NET1.1】 CSV出力について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-15 11:22
いつも大変お世話になっております。
CSVの出力がうまくいかないので、教えて下さい。 一覧画面より、「CSV作成」ボタン(LINK BUTTON)を押下すると、CSVファイルを作成する。 以下のソースで試みたのですが、 CSVファイルは、作成されるのですが、データと一緒に表示画面のソースが一緒に出力されていまいます。データのみを出力するには、どのようにしたらよいですか。 ご指導お願い致します。 Dim con As New OleDbConnection(ConfigurationSettings.AppSettings("ConnectionString")) Dim cmd As New OleDbCommand("", con) Dim dr As OleDbDataReader cmd.ComandText = "SELECT retu1,retu2 FROM TABLE WHERE ID=5" Try con.open dr = cmd.ExecuteReader If Not dr.HasRows = True Then Response.Redirect("Default.aspx", False) Else Try csvPath = "C:\sendinfo.csv" enc = System.Text.Encoding.GetEncoding("Shift_JIS") sw = New System.IO.StreamWriter(csvPath, False, enc) sw.Write("会社種別") sw.Write(Chr(44)) sw.Write("会社種別") sw.Write(Chr(13)) sw.Write(dr(0)) sw.Write(Chr(44)) sw.Write(dr(1)) sw.Write(Chr(13)) sw.Close() Finally con.close End Try End If catch ex as Exception Response.Redirect("ErrorDisplay.aspx") Finally con.close End Try Response.AppendHeader("Content-Disposition", "attachment;filename=sendinfo.csv") Response.ContentType = "application/octet-stream" Response.WriteFile("C:\sendinfo.csv") | ||||
|
投稿日時: 2006-11-15 12:41
Response.End()
| ||||
|
投稿日時: 2006-11-15 13:43
こばさん
お返事有難うございます。 解決しました。 Response.End()をしないといけないのですね。 もう1点質問させて下さい。 現在、「CSV作成」ボタンをクリックすると、 「ファイルダウンロードウインドウ」が2回表示されてしますのですが、 解決策がありましたら、ご指導お願い致します。 | ||||
|
投稿日時: 2006-11-15 15:24
こんにちは。
この辺は以前にも見た気がしますが、過去ログ検索をしてみるといいかもしれませんね。 せっかくなので Google 先生に聞いてみた結果出てきたのはこれでした。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5606&forum=12 それよりも、CSV ファイルを C:\ に作成していますが、これは大丈夫なのでしょうか。 Web アプリケーションを開発する上で基礎中の基礎である同時アクセスが考慮され ていないような気がします。 (例えば、ユーザAが CSV を作成中にユーザBがアクセスしてきたら、 C:\sendinfo.csv は上書きされてしまいますよね。 この場合は StreamWriter を作るときにファイル名を渡すのではなく、元になる MemoryStream を作成してそれを渡すようにします。 (そもそも Stream を使うほどの処理か?というのはこの際置いておくとして) あと、Chr(44) とカンマを Chr で指定しているのは何か意味があるのでしょうか? _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 |
1