String 拆分为DataRow或DataTable.Row.Add

String 拆分为DataRow或DataTable.Row.Add,string,vb.net,datatable,split,datarow,String,Vb.net,Datatable,Split,Datarow,我这里有一个关于String.Split创建DataRow或专门向DataTable中的行添加数据的问题。假设我有: Dim dt As New DataTable Dim str As String = "Data1,Data2,Data3,Data4" 我想把字符串str中的数据放入数据表dt,用“,”分割 传统上,我通过使用String.Split实现这一点,我就是这样做的: Dim temp() As String = str.Split(",") Dim dr As DataRow

我这里有一个关于String.Split创建DataRow或专门向DataTable中的行添加数据的问题。假设我有:

Dim dt As New DataTable
Dim str As String = "Data1,Data2,Data3,Data4"
我想把字符串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)

如果它只涉及很少的数据列,那么这应该很好。如果我有50列或更多的DataTable呢。 是否有任何步骤可以直接将String.Split分配给DataRow或DataTable.Rows。 或者其他可以帮助我将字符串中的数据插入数据表的方法

如果你们中有人听不懂我的英语,我很抱歉。请评论任何不清楚的地方,我真的需要这方面的指导,因为我是这个编程世界的新手

谢谢。

谢谢他对我的问题提出的精彩建议和解决方案

事实上,我以前做的是这样的

Dim dr As DataRow = str.Split(",")
它确实产生了一个错误。这就是为什么我认为我无法直接将数组插入datatable

对不起,我的不好。今天我确实学到了一些东西,因为我总是把datarow和datatable一样对待。因为我认为datatable是datarow的集合

我通过直接将数组添加到datatable来解决这个问题。以下是我所做的事情

Dim temp() As Object = str.Split(",")
dt.Rows.Add(temp)
谢谢大家的建议。我希望那个人能把这个问题的答案邮寄给我,这样我就可以把它标记为答案了。非常感谢你

感谢他对我的问题提出的精彩建议和解决方案

事实上,我以前做的是这样的

Dim dr As DataRow = str.Split(",")
它确实产生了一个错误。这就是为什么我认为我无法直接将数组插入datatable

对不起,我的不好。今天我确实学到了一些东西,因为我总是把datarow和datatable一样对待。因为我认为datatable是datarow的集合

我通过直接将数组添加到datatable来解决这个问题。以下是我所做的事情

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

谢谢大家的建议。我希望那个人能把这个问题的答案邮寄给我,这样我就可以把它标记为答案了。非常感谢你

只需将数组传递给
Add
。实际上,如果参数类型为
Object()
,则可能无法传递数组。您可以轻松创建一个
对象
数组:
temp.Cast(Of Object)().ToArray()
dt.Rows.Add(str.Split(“,”)
顺便说一句,要编译该代码,必须使用
选项Strict Off
。默认情况下,每个人都应启用
选项Strict。并且必须确保datatable中的列数大于或等于数组中的项数。datatable上的所有列也应为stringJust传递数组到
Add
。实际上,如果参数的类型为
Object()
,则可能无法传递数组。您可以轻松创建一个
对象
数组:
temp.Cast(Of Object)().ToArray()
dt.Rows.Add(str.Split(“,”)
顺便说一句,要编译该代码,必须使用
选项Strict Off
。默认情况下,每个人都应启用
选项Strict。并且必须确保datatable中的列数大于或等于数组中的项数。datatable上的所有列也应为string类型