@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ASP.net DBでのCSV出力

1
投稿者投稿内容
キバヤシ
会議室デビュー日: 2008/02/15
投稿数: 2
投稿日時: 2008-02-15 15:50
始めて投稿させていただきます。

ASP.net(VB)でCSV出力を行っているのですが、

Dim objCom As New SqlCommand(strSQL,DBConn)

Response.AppendHeader("Content-Disposition","attachment;filename=Test.csv")
Response.ContentType = "application/vnd.ms-excel"

DBConn.Open()
objDr=objCom.ExecuteReader()
DataBind()
DBConn.Close()

を使用した方法でできるのも実証しています。
多分これはフォーム(Web画面)その物をCSVにしているのだと思いますが
そのASPの中で条件(例えば日付など)を入力して、ボタンを押したときに出力されるようなものなのですが、
その際に、どうもボタンが表示されたり、

<html>
<body>
<asp:TextBox
id="txtDate"
runat="server"
OnTextChanged="btn_Click"
style="text-align:right"
Width=80
/>
<asp:Button id="btn" runat="Server" Text="抽出" OnClick="btn_Click" /><br>

</body>
</html>

<asp:Repeater id="objRep" runat="Server" DataSource="<%#objDr %>">
<HeaderTemplate>aaa,bbb,ccc
</HeaderTemplate>
<ItemTemplate><%# DataBinder.Eval(Container.DataItem, "xxx") %>,<%# DataBinder.Eval(Container.DataItem, "bbb") %>,<%# DataBinder.Eval(Container.DataItem, "ccc") %>
</ItemTemplate>

と表記したら、Buffer?か何かで出力結果に<html>+Buffer?+CSV出力するもの
という形でCSVができてしまいます。

なんとか<html>+buffer?
の部分を消したいのですが、、、何か良い手がないかと模索中です。
何か良い案があれば教えて下さい。

※aspxファイルは1つで実現するという条件付きで(管理上2つ以上のASPXファイルになるのは不可で・・・)

無理でしょうか???
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2008-02-15 15:59
なんだってー!
  ΩΩΩ


普通にWebClient.DownloadFileじゃ駄目?


追記
aspx側の話ですね。。。orz
_________________
AbEnd!

[ メッセージ編集済み 編集者: Yam 編集日時 2008-02-15 16:37 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-02-15 16:09
> aspxファイルは1つで実現するという条件付きで

無理でしょうね。
Repeaterを使わずに自分でcsvのデータを作るなら下記のような手がないわけでもないですが。
http://dotnetfan.org/forums/thread/58.aspx

Repeaterを使うならその部分は別ファイルにしましょう。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2008-02-15 16:16
このヘンが元になってそうなので熟読してみては如何でしょうか。
http://www.atmarkit.co.jp/fdotnet/dotnettips/210aspdbdwnload/aspdbdwnload.html

スレ主さんがコードの意味を完全に理解出来てないことと突然「buffer?」なんて言葉がでることから、新人ASPプログラマか学生かと推測
↑当たりなら、自分が理解出来てないコードの不具合(この場合、不具合かどうかも理解していない)を人に聞くのは間違いですよ。

あと、ダメ元で出力結果を提示してみて下さい。
「buffer?」の意味が分からないので。
キバヤシ
会議室デビュー日: 2008/02/15
投稿数: 2
投稿日時: 2008-02-15 16:55
はい、新人ASPプログラマです。

プログラムとかHTML元々VBとかでもやってたので、見方はわかるのでサイトをみて
ちなみに、

*************出力結果はこんな感じです***************
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>Sample</title>
</head>
<body>

<form name="_ctl0" method="post" action="0000.ScrapProducts.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE" value="dDwtMzI5NDQ4MTA7dDw7bDxpPDE+O2k8Mz47PjtsPHQ8O2w8aTwxPjtpPDM+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPDI1Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwyMDA4LzIvMDc7Pj47Pjs7Pjs+Pjt0PHA8bDxfIUl0ZW1

....(続く)
aaa,bbb,ccc
1223131,2414135,413431
(↑ここはCSVで出力したかったところ)
*************出力結果はこんな感じです***************

>Yamさん
WebClient.DownloadFile ・・・調べてみます。

>どっとねっとふぁん さん
最初はdatagridを使っていたのですが、ファイルがHTML形式?になってファイル自体が重くなって開くのに時間がかかっていたので、CSV出力する方法で調べたらRepeaterがあったのでそれを使用しています。
サイト参考にさせてもらいます。

実現したいのは・・
aspxのファイルは一つ
その中でテキストボックス入力とボタンでcsv出力(HTML部分なし)
です。


Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2008-02-15 17:30
引用:

キバヤシさんの書き込み (2008-02-15 16:55) より:
>Yamさん
WebClient.DownloadFile ・・・調べてみます。


サーバ側の話なので忘れて下さい。 o../.rz
_________________
音速の定時退社!
1

スキルアップ/キャリアアップ(JOB@IT)