Vb.net SSIS脚本组件
我发现这段代码对我的输入(一个CSV字符串)很有效。该包运行良好,但没有得到5列输出,我只得到2列。我在脚本组件中添加了其他列,并将它们的数据类型更改为合适的数据类型。输入为643492,光伏带1X1公用事业向上,67.5393446。在整个字符串中,我只在一列中得到643492,在另一列中得到PV STRIP 1X1实用程序。字符串的其余部分是空白的,不知道为什么。专家们乐于助人。我对.net一无所知,我对SQL Server也是新手Vb.net SSIS脚本组件,vb.net,sql-server-2008,ssis,Vb.net,Sql Server 2008,Ssis,我发现这段代码对我的输入(一个CSV字符串)很有效。该包运行良好,但没有得到5列输出,我只得到2列。我在脚本组件中添加了其他列,并将它们的数据类型更改为合适的数据类型。输入为643492,光伏带1X1公用事业向上,67.5393446。在整个字符串中,我只在一列中得到643492,在另一列中得到PV STRIP 1X1实用程序。字符串的其余部分是空白的,不知道为什么。专家们乐于助人。我对.net一无所知,我对SQL Server也是新手 Public Overrides Sub Input0_P
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strRow As String
Dim strColSeperator As String
Dim rowValues As String()
strRow = Row.Line.ToString()
If strRow.Contains(",") Then
strColSeperator = (",")
ElseIf strRow.Contains(";") Then
strColSeperator = ";"
End If
rowValues = Row.Line.Split(CChar(strColSeperator))
Row.Code = rowValues.GetValue(0).ToString()
Row.Description = rowValues.GetValue(1).ToString()
End Sub
看起来您只是将前两个值分配给缓冲区行。代码段的最后两行是进行赋值的地方。根据示例中提供的字符串上的
Split()
,您的rowValues
数组应该包含5个值。您可以使用GetValue(index)
方法分配它们。对数组的索引3到索引5执行此操作
字符串值如下所示:
Row.FieldName = rowValues.GetValue(0).ToString()
其中,Code是字段的名称,0是数组中值的从零开始的索引
对于整数,可以执行以下操作:
Row.FieldName = Convert.ToInt32(rowValues.GetValue(3))
您可以使用其他
Convert
方法转换为所需的输出类型 您似乎只将前两个值分配给缓冲区行。代码段的最后两行是进行赋值的地方。根据示例中提供的字符串上的Split()
,您的rowValues
数组应该包含5个值。您可以使用GetValue(index)
方法分配它们。对数组的索引3到索引5执行此操作
字符串值如下所示:
Row.FieldName = rowValues.GetValue(0).ToString()
其中,Code是字段的名称,0是数组中值的从零开始的索引
对于整数,可以执行以下操作:
Row.FieldName = Convert.ToInt32(rowValues.GetValue(3))
您可以使用其他
Convert
方法转换为所需的输出类型 我刚才发现了。但是谢谢你的回复。干杯我刚才发现了。但是谢谢你的回复。干杯