Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 提供两个带有一个标头/HTTP事务的.csv文件_Asp.net_Vb.net_Webforms - Fatal编程技术网

Asp.net 提供两个带有一个标头/HTTP事务的.csv文件

Asp.net 提供两个带有一个标头/HTTP事务的.csv文件,asp.net,vb.net,webforms,Asp.net,Vb.net,Webforms,我目前有一段代码可以从数据库调用生成CSV,但我被要求创建两个单独的CSV文件,其中包含来自一次单击事件的两个不同的数据库调用。下面是我当前代码的一个示例: 'Global variable Dim Include As List(Of String) = New List(Of String) 'Click event sub Dim tempID As String = "" 'This gets the value of a checkbox (7th of 7 columns) '

我目前有一段代码可以从数据库调用生成CSV,但我被要求创建两个单独的CSV文件,其中包含来自一次单击事件的两个不同的数据库调用。下面是我当前代码的一个示例:

'Global variable
Dim Include As List(Of String) = New List(Of String)


'Click event sub
Dim tempID As String = ""

'This gets the value of a checkbox (7th of 7 columns)
' and only adds checked rows to the query.
For Each row In GridView.Rows
    If row.Cells(6).Controls(1).Checked Then
        tempID = Regex.Replace(row.Cells(0).Controls(0).Text.Trim, "<(?:[^>=]|='[^']*'|=""[^""]*""|=[^'""][^\s>]*)*>", "", RegexOptions.IgnoreCase Or RegexOptions.IgnorePatternWhitespace Or RegexOptions.Multiline Or RegexOptions.Singleline)
        Include.Add(tempID)
    End If
Next

Dim Chosen As String = String.Join(",", Include)

SQLQuery = "SET ANSI_NULLS, ANSI_WARNINGS, ARITHABORT ON; "
SQLQuery += "SELECT * FROM ( " &
SQLQuery += "SELECT EXP.Account, " &
    "EXP.Amount, " &
    "EXP.DebitCredit, " &
    "EXP.Description, " &
    "EXP.BudgetCenter "

SQLQuery += "FROM [DB].[TBL] EXP " &
    "INNER JOIN [DB2].[TBL2] REIM " &
    "ON EXP.ID = REIM.ID " &
    "WHERE EXP.ID IN ( " + Chosen + " ) " &
    "AND REIM.StatusCode = 'APPROVED' "

SQLQuery += ") AS ResultTable "
ResultsDataSet = RunQuery(SQLQuery) 'THIS IS WHERE I CALL THE DATABASE
ResultsTable = ResultsDataSet.Tables(0)

For Each row As DataRow In ResultsTable.Rows
    Dim item As String
    For Each item In row.ItemArray
        sb.Append(item.ToString + ","c)
    Next
Next

Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=JournalReport_" + Date.Today.Month.ToString + "_" + Date.Today.Day.ToString + "_" + Date.Today.Year.ToString + ".csv")
Response.Charset = ""
Response.ContentType = "application/text"
Response.Output.Write(sb.ToString())
Response.Flush()
”全局变量
Dim包含为列表(字符串)=新列表(字符串)
'单击事件子菜单
Dim tempID As String=“”
'获取复选框的值(7列中的第7列)
'并仅将选中的行添加到查询中。
对于GridView.Rows中的每一行
如果选中行单元格(6).控件(1),则
tempID=Regex.Replace(row.Cells(0).Controls(0).Text.Trim,“=]|='[^']*'.[^']*”“|=[^']*.[^\s>]*>”,“,”,RegexOptions.IgnoreCase或RegexOptions.IgnorePatternWhitespace或RegexOptions.Multiline或RegexOptions.Singleline)
Include.Add(tempID)
如果结束
下一个
Dim选择为String=String.Join(“,”包括)
SQLQuery=“设置ANSI\U空值、ANSI\U警告、ARITHABORT ON;”
SQLQuery+=“选择*自(”&
SQLQuery+=“选择EXP.帐户,”&
“EXP.Amount,”&
“EXP.DebitCredit,”&
“EXP.Description,”&
“EXP.BudgetCenter”
SQLQuery+=“来自[DB].[TBL]EXP”&
“内部联接[DB2].[TBL2]REIM”&
“ON EXP.ID=REIM.ID”&
其中EXP.ID位于(“+selected+”)中&
“和REIM.StatusCode=‘已批准’”
SQLQuery+=”)作为可结果”
ResultsDataSet=RunQuery(SQLQuery)'这是我调用数据库的地方
ResultsTable=ResultsDataSet.Tables(0)
对于ResultsTable.Rows中作为DataRow的每一行
将项目设置为字符串
对于row.ItemArray中的每个项目
sb.追加(item.ToString+“,”c)
下一个
下一个
答复:Clear()
Response.Buffer=True
Response.AddHeader(“内容处置”,“附件;文件名=JournalReport_“+Date.Today.Month.ToString+““+Date.Today.Day.ToString+““+Date.Today.Year.ToString+”.csv”)
Response.Charset=“”
Response.ContentType=“应用程序/文本”
Response.Output.Write(sb.ToString())
Response.Flush()
我还有另一个
click event
执行相同的操作,但在
Response.AddHeader()调用中使用了不同的查询和不同的文件名

我试图做的是,在某种程度上,合并这两个单击事件,在一个操作中创建两个文件。有没有办法用我的代码来实现这一点?是否有其他方法可以创建这些文件


在过去几天里,我在GridView和数据集研究的帮助下编写了这段代码。所以,如果它不好看,那只是因为它有点匆忙,而且背后的知识很少。

选择的
来自哪里?这可能是一个非常严重的SQL注入安全问题。而且。。。不可能用两个单独的文档响应一个HTTP请求,除非您愿意将它们放在一个zip文件中。我要求您查找并向我显示您在网页上单击一个链接并导致两次单独下载的情况。这是一个面向内部的web应用程序。因此,SQL注入并不重要。我加了一行选择,我忘了把它放在巴隆加。内部站点仍然需要SQL注入保护。可能需要javascript打开单独的选项卡以获得额外的下载。