如何在SSIS中获取脚本组件中的列值?

在下面的代码中我得到列名,我在inputcolumn中找不到Value属性

我还需要获取列的值,而不仅仅是名称。

IDTSInput100 input = ComponentMetaData.InputCollection[0]; IDTSVirtualInput100 vinput = input.GetVirtualInput(); foreach (IDTSVirtualInputColumn100 inputcolumn in vinput.VirtualInputColumnCollection) { strAll += inputcolumn.Name + ", " + Environment.NewLine; } 

这段代码是vb.net,但我认为这是你正在寻找的

 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()方法。