C# 如何在SSIS中获取脚本组件中的列值?
在下面的代码中,我得到了列名,但在inputcolumn 我还需要获取列的值,而不仅仅是名称C# 如何在SSIS中获取脚本组件中的列值?,c#,ssis,transform,C#,Ssis,Transform,在下面的代码中,我得到了列名,但在inputcolumn 我还需要获取列的值,而不仅仅是名称 IDTSInput100 input = ComponentMetaData.InputCollection[0]; IDTSVirtualInput100 vinput = input.GetVirtualInput(); foreach (IDTSVirtualInputColumn100 inputcolumn in vinput.VirtualInputColumnCollection) {
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()
方法可以从提供的代码中创建 我不明白为什么在脚本组件中使用此代码?或者是脚本任务?因为脚本组件允许您使用我最喜欢的编程语言(如c#)转换数据。