String.Split to DataRow или DataTable.Row.Add - PullRequest
1 голос
/ 06 ноября 2019

У меня есть один вопрос, касающийся String.Split для создания DataRow или конкретного добавления данных в строку в DataTable. Допустим, у меня есть это:

Dim dt As New DataTable
Dim str As String = "Data1,Data2,Data3,Data4"

И я хотел получить данные из String str в таблицу данных dt , разделенную на ",".

Традиционно я добиваюсь этого, используя String.Split , и вот как я это делаю:

Dim temp() As String = str.Split(",")

Dim dr As DataRow = dt.NewRow
dr("Col1") = temp(0)
dr("Col2") = temp(1)
dr("Col3") = temp(2)
dr("Col4") = temp(3)
dt.Rows.Add(dr)

или

dt.Rows.Add(temp(0), temp(1), temp(2), temp(3))

Это должно быть хорошо, если в нем задействовано всего несколько столбцов данных. Что делать, если у меня есть как 50 столбцов DataTable или даже больше. Есть ли какие-либо шаги, которые я мог бы напрямую назначить String.Split для DataRow или DataTable.Rows. Или другой метод, который может помочь мне вставить данные из строки в мою таблицу данных.

Мне очень жаль, если кто-то из вас не смог понять мой английский. Пожалуйста, прокомментируйте все, что было неясно, и мне действительно нужно руководство, поскольку я новичок в этом мире программирования.

Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Спасибо @ jmcilhinney за его блестящее предложение и решение моей проблемы.

На самом деле то, что я сделал раньше, это что-то вроде

Dim dr As DataRow = str.Split(",")

Иэто произвело ошибку. Вот почему я подумал, что не могу напрямую вставить массив в datatable.

Извините за мой плохой. Я кое-что узнал сегодня, так как я всегда отношусь к датароу как к данным. Потому что я думал, что набор данных - это набор данных.

Я решаю это путем непосредственного добавления массива в набор данных. Вот что я делаю.

Dim temp() As Object = str.Split(",")
dt.Rows.Add(temp)

Спасибо всем за предложения. Я хотел бы, чтобы @ jmcilhinney получил ответ по почте, чтобы я мог пометить его как ответ. Большое спасибо @ jmcilhinney !!!

...