- - PR -
ASP.net DBでのCSV出力
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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ファイルになるのは不可で・・・) 無理でしょうか??? | ||||
|
投稿日時: 2008-02-15 15:59
なんだってー!
ΩΩΩ 普通にWebClient.DownloadFileじゃ駄目? 追記 aspx側の話ですね。。。orz _________________ AbEnd! [ メッセージ編集済み 編集者: Yam 編集日時 2008-02-15 16:37 ] | ||||
|
投稿日時: 2008-02-15 16:09
> aspxファイルは1つで実現するという条件付きで
無理でしょうね。 Repeaterを使わずに自分でcsvのデータを作るなら下記のような手がないわけでもないですが。 http://dotnetfan.org/forums/thread/58.aspx Repeaterを使うならその部分は別ファイルにしましょう。 | ||||
|
投稿日時: 2008-02-15 16:16
このヘンが元になってそうなので熟読してみては如何でしょうか。
http://www.atmarkit.co.jp/fdotnet/dotnettips/210aspdbdwnload/aspdbdwnload.html スレ主さんがコードの意味を完全に理解出来てないことと突然「buffer?」なんて言葉がでることから、新人ASPプログラマか学生かと推測 ↑当たりなら、自分が理解出来てないコードの不具合(この場合、不具合かどうかも理解していない)を人に聞くのは間違いですよ。 あと、ダメ元で出力結果を提示してみて下さい。 「buffer?」の意味が分からないので。 | ||||
|
投稿日時: 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部分なし) です。 | ||||
|
投稿日時: 2008-02-15 17:30
サーバ側の話なので忘れて下さい。 o../.rz _________________ 音速の定時退社! |
1