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 に答える