0

こんにちは、ユーザーがデータベースからデータをダウンロードできるようにして、データベースにアクセスせずにデータを操作できるようにしようとしています。これまでのところ、これでファイルが作成されますが、クライアントPCにダウンロードする必要があります。任意のヒント?

Protected Sub ExportDataTableToCSV(cmdText As String)
    Try
        Dim sqlcon_Local As New SqlClient.SqlConnection
        sqlcon_Local.ConnectionString = ConfigurationManager.ConnectionStrings("Portal").ConnectionString
        Dim objCmd As New SqlCommand(cmdText, sqlcon_Local)
        Dim da As SqlDataAdapter = New SqlDataAdapter(objCmd)
        Dim dt As DataTable = New DataTable
        da.Fill(dt)
        Dim filename As String = Server.MapPath("~/download.csv")
        Dim sw As New StreamWriter(filename, False)

        Dim iColCount As Integer = dt.Columns.Count
        For i As Integer = 0 To iColCount - 1
            sw.Write(dt.Columns(i))
            If i < iColCount - 1 Then
                sw.Write(",")
            End If
        Next
        sw.Write(sw.NewLine)

        For Each dr As DataRow In dt.Rows
            For i As Integer = 0 To iColCount - 1
                If Not Convert.IsDBNull(dr(i)) Then
                    sw.Write(dr(i).ToString())
                End If
                If i < iColCount - 1 Then
                    sw.Write(",")
                End If
            Next
            sw.Write(sw.NewLine)
        Next
        sw.Close()

        Response.Clear()
        Response.ContentType = "application/csv"
        Response.AddHeader("Content-Disposition", "attachment; filename=download.csv")
        Response.WriteFile(filename)
        Response.Flush()
        Response.End()

    Catch ex As Exception

    End Try
End Sub

私は何を間違っていますか?任意の入力を歓迎します。

御時間ありがとうございます!

4

2 に答える 2

0

Response.ContentType を次のように変更してください

Response.ContentType = "テキスト/csv";

これがあなたを助けることを願っています

于 2013-04-11T07:58:37.300 に答える