【发布时间】:2019-07-09 23:17:40
【问题描述】:
我正在将 SQL Server 表中的记录读入数据集,然后将其导出到 CSV 文件。当我在调试模式下单步执行时,一切正常。当我运行它时,它只导出一个带有垃圾数据的单元格。因为它是一个 ASP.NET 应用程序,所以我不确定我是否在回发方面做错了什么。似乎在运行时,它不会等待写入 CSV 文件。
Dim sbldRecordCSV As New StringBuilder
Dim dtHCMTable As DataTable = mdsHCMTable.Tables(0)
Dim intIndex As Integer = 0
'Read the connection-string from web.config
Dim connHCM As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("connHCM").ConnectionString)
'Read the exported CSV file path from web.config
Dim strCSVpath As String = System.Configuration.ConfigurationManager.AppSettings("CSVpath").ToString
Try
For intIndex = 0 To mdsHCMTable.Tables(0).Rows.Count - 1
Dim drHCMTable As DataRow = dtHCMTable.Rows(intIndex)
For Each field As Object In drHCMTable.ItemArray
sbldRecordCSV.Append(field.ToString & "|")
Next
sbldRecordCSV.Replace("|", vbNewLine, sbldRecordCSV.Length - 1, 1)
Next
My.Computer.FileSystem.WriteAllText(strCSVpath.ToString & lstDataTables.SelectedValue.ToString & ".csv", sbldRecordCSV.ToString, False)
【问题讨论】:
-
您实际上在该代码的哪个位置从数据库中检索任何数据?您创建了一个
SqlConnection但从不使用它,因此DataTable中的任何数据必须早先已经存在。您可能已经在调试器中运行了该代码,但显然您从未调试过它。 -
您好 jmcihinney,过程标题是 Protected Sub ExportRecordsToCSV(mdsHCMTable As DataSet)。我检索数据集作为参数。请不要对我的调试能力发表任何评论。我是 asp.net 的新手,但对编程并不陌生。感谢您提前提供任何帮助。
-
我只能凭我所见。你已经用 SQL 和 SQL Server 标记了这个问题,但是有问题的方法接收并已经填充了
DataSet,所以这个问题与 SQL 或 SQL Server 没有任何关系。您创建了一个从未使用过的SqlConnection对象,但您从未在调试中使用它。根据您向我们展示的内容,我只能得出结论,您的DataSet不包含您认为的内容。如果是我,我会添加一些跟踪代码以查看在执行 Release 构建时实际发生了什么。
标签: sql sql-server vb.net csv