How can I get the column Value in Script Component

2020-04-17 05:30发布

问题:

In the code below I get the column name, I couldn't find a Value property in inputcolumn

I also need to get the value of the column, not only the name.

IDTSInput100 input = ComponentMetaData.InputCollection[0];

IDTSVirtualInput100 vinput = input.GetVirtualInput();

foreach (IDTSVirtualInputColumn100 inputcolumn in vinput.VirtualInputColumnCollection)
{
    strAll += inputcolumn.Name + ", " + Environment.NewLine;
}

回答1:

This code is vb.net but i think it is what you're looking for

Public Class ScriptMain

Inherits UserComponent

Private columns As Integer()

Public Overrides Sub PreExecute()

Dim input As IDTSInput90 = ComponentMetaData.InputCollection(0)

ReDim columns(input.InputColumnCollection.Count)

columns = Me.GetColumnIndexes(input.ID)

 System.Windows.Forms.MessageBox.Show(columns.Length.ToString())

End Sub

Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer)



While Buffer.NextRow()

Dim values As New System.Text.StringBuilder

For Each index As Integer In columns

Dim value As Object = Buffer(index)

'If value Is Not Nothing Then

values.Append(value)

'End If

values.Append(",")

Next

'' TODO: Write line to destination here

System.Windows.Forms.MessageBox.Show(values.ToString())

End While

End Sub

End Class

Me.GetColumnIndexes() method can be created from your provided code.