В настоящее время у меня есть код, который будет генерировать 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()
У меня есть другой click event
, который делает то же самое, но с другим запросом и другим именем файла в вызове Response.AddHeader()
.
Что я пытаюсь сделать, так это объединить эти два события щелчка, чтобы создать оба файла в одном действии. Есть ли способ сделать это с помощью кода, который у меня есть? Есть ли другой способ создания этих файлов?
Я написал этот код с помощью исследований GridViews и DataSets за последние несколько дней. Так что, если это не красиво, это только потому, что это было немного поспешно и мало знаний за этим.