2013-05-31 3 views
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 

поэтому мой возвращаемый результат будет что-то вроде

Результата name1 | Name2 | Name3 | Name4 |

| мой разделитель данных, я пытался удалить | если достигнута последняя запись, но я не смог ее сделать

Ожидаемый результат Name1 | Name2 | Name3 | Наименование4

не существует | в моей последней записи

+0

И когда вы меняете I на 0? – Oscar

+0

Извините, оскар, что значит u? 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

гений, дайте u нравится, 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

Вы просто заменить

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) 

Я думаю, что это поможет, потому что он будет проверять, если это не последний столбец только тогда он будет выполнять оператор еще он не будет выполняться.

Просто попробуйте, и я надеюсь, что это поможет .. :)

Смежные вопросы