Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net SSIS脚本组件_Vb.net_Sql Server 2008_Ssis - Fatal编程技术网

Vb.net SSIS脚本组件

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

我发现这段代码对我的输入(一个CSV字符串)很有效。该包运行良好,但没有得到5列输出,我只得到2列。我在脚本组件中添加了其他列,并将它们的数据类型更改为合适的数据类型。输入为643492,光伏带1X1公用事业向上,67.5393446。在整个字符串中,我只在一列中得到643492,在另一列中得到PV STRIP 1X1实用程序。字符串的其余部分是空白的,不知道为什么。专家们乐于助人。我对.net一无所知,我对SQL Server也是新手

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
方法转换为所需的输出类型

我刚才发现了。但是谢谢你的回复。干杯我刚才发现了。但是谢谢你的回复。干杯