2013-05-31 4 views
0
달성하기 위해 무엇을 내 기능

줄 바꿈 후 마지막 문자를 제거

결과 이름 1처럼 명확하게

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 

그래서 내 반환 결과가 될 것입니다 데이터 세트에서 뭔가를 열 데이터의 각각을 분리하는 것입니다 기본적으로 어떤

| 이름 2 | 이름 3 | 이름 4 |

| 내 데이터 구분 기호, 나는 | 마지막 레코드에 도달했지만 작성하지 못한 경우

예상 결과 이름 1 | 이름 2 | 이름 3 | | NAME4

전혀 없다 마지막 레코드에

+0

그리고 0으로 재설정하면? – Oscar

+0

미안 오스카, 무슨 뜻이야? u는 카운터 i를 의미합니까? –

+0

예, 0으로 재설정되지 않는 것으로 나타났습니다. 아마도 관련성이 없거나 그렇다고 할 수 있습니다. – Oscar

답변

0

이 시도하십시오 :

제거하려면 | 그리고 새로운 라인.

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

그냥 제거 | 그것을 확인합니다 있기 때문에 마지막 열은 그것이 다른 문을 실행합니다 다음이 아닌 경우

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

천재, 줘 좋아, xD –

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 
0

당신은, 나는 그것이 도움이 될 것입니다 생각

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) 

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

교체 그것은 실행되지 않습니다.

그냥 시도하고 도움이 되길 바랍니다 .. :)