1

我有一个基本的 VB.net 程序,它对数据库运行查询以提取客户信息以发送优惠券。我想做的是,当我按下命令按钮以返回结果并在运行该程序的计算机上创建一个 .csv 文件时......现在,我有一个运行查询的程序,并转储结果到报告查看器,但是我无法导出到 .csv,并且报告查看器上显示的记录太多...

到目前为止,这是我的代码......我假设我需要以 XML 形式构建布局?

    Dim str As New StringBuilder

            For Each dr As DataRow In Me.DataDeliveryServiceDataSet.Invoice_Tb

                For Each field As Object In dr.ItemArray

                    str.Append(field.ToString & ",")

                Next

                str.Replace(",", vbNewLine, str.Length - 1, 1)

            Next



            Try

                My.Computer.FileSystem.WriteAllText("C:\temp\testcsv.csv", str.ToString, False)

            Catch ex As Exception

                MessageBox.Show("Write Error")
End Try
End Sub
4

1 回答 1

1

您可以使用 LinQ 用这个简短版本替换内部循环

Dim str As New StringBuilder 
For Each dr As DataRow In Me.DataDeliveryServiceDataSet.Invoice_Tb 
    str.AppendLine(string.Join(",", _ 
             dr.ItemArray.Select(Function(o) if(o = DBNull.Value,"",o.ToString()))))
Next 

当然,如果你需要导出为XML格式,使用数据表的WriteXml方法就足够了

Me.DataDeliveryServiceDataSet.Invoice_Tb.WriteXml("C:\temp\testcsv.csv")
于 2012-09-01T14:56:25.193 回答