0
這應該很容易,看起來像我讓自己太困惑了。將各種列類型的數據錶轉換爲字符串數組的更好方法
我從數據庫中得到一個表,數據範圍從varchar到int到Null值。轉換到這一點,我已經有一個製表符分隔文件的廉價和骯髒的方式是這樣的(皺縮保留空間,醜陋保持看齊,與原):
da.Fill(dt)
' da - DataAdapter '
' dt - DataTable '
Dim lColumns As Long = dt.Columns.Count
Dim arrColumns(dt.Columns.Count) As String
Dim arrData(dt.Columns.Count) As Object
Dim j As Long = 0
Dim arrData(dt.Columns.Count) As Object
For i = 0 To dt.Rows.Count - 1
arrData = dt.Rows(i).ItemArray()
For j = 0 To arrData.GetUpperBound(0) - 1
arrColumns(j) = arrData(j).ToString
Next
wrtOutput.WriteLine(String.Join(strFieldDelimiter, arrColumns))
Array.Clear(arrColumns, 0, arrColumns.GetLength(0))
Array.Clear(arrData, 0, arrData.GetLength(0))
Next
這不僅是醜陋和低效,它也讓我很緊張。此外,如果可能的話,我希望避免通過表的臭名昭着的雙循環。我真的很感謝一個乾淨而安全的重寫這篇文章的方法。
我喜歡使用的方法here - 特別是試圖解決我遇到的同樣的問題,但是當我直接將其應用於我的案例時,它崩潰了。
驚人!不僅這正是我想到的,但無法實現,它從第一次運行實際上起作用。你,先生,現在是我的個人英雄:) – Vlad 2010-06-08 20:38:09