0

基本的に、達成すべき私の機能は、データセット内の各列データを明確に分離することです

Public Shared Function mtdCDsToStr (ByVal pDs As DataSet) As String

Dim sResult As String = " "
Dim sb As New System.Text.StringBuilder
Dim dt As DataTable
Dim dc As DataColumn
Dim dr As DataRow
Dim i As Integer = 0

For Each dt In pDs.Tables
 For Each dr In dt.Rows
  For Each dc In dt.Columns
    sb.Append(dr(i).ToString + "|" + Environment.NewLine )

  Next

  sb.Remove(sb.Length -1, 1)
 Next
Next
sResult = sb.ToString
End Function

私の戻り結果は次のようになります

結果 名1| 名前2| 名前3| 名前4|

| | は私のデータ区切り記号です。 | を削除しようとしていました。最後のレコードに到達したが、それを作成できなかった場合

期待される結果 の名前 1| 名前2| 名前3| 名前4

ありません | 私の最後の記録で

4

3 に答える 3

0

これを試して

For Each dt In pDs.Tables
 For Each dr In dt.Rows
  For Each dc In dt.Columns
    sb.Append(dc(i).ToString + iif(i=dt.Columns.Count-1,"","|") + Environment.NewLine )
    i += 1
  Next      
 Next
Next
sResult = sb.ToString
于 2013-05-31T08:05:11.527 に答える
0

これを試して:

削除するには | そして新線。

sb.Remove(sb.Length -1 - Environment.NewLine.Length, Environment.NewLine.Length + 1)

削除するだけ |

    sb.Remove(sb.Length -1 - Environment.NewLine.Length, 1)
于 2013-05-31T08:11:05.777 に答える
0

交換するだけ

sb.Append(dr(i).ToString + "|" + Environment.NewLine )

 dim j as Integer = 0 // declare this above all the loops

 if j < dt.Columns.Count - 1 Then
     sb.Append(dr(i).ToString + "|" + Environment.NewLine )

最後の列ではないかどうかを確認し、それ以外の場合は実行しないステートメントを実行するだけなので、役立つと思います。

試してみて、それが役立つことを願っています.. :)

于 2013-05-31T08:15:07.660 に答える