C# 4.0 派生列未映射到输出列?我该怎么办?
包已成功生成。但是显示以下错误的派生列- 验证错误。这是编程的DataFlowTask派生列[2]:尝试解析表达式“Empid”失败,返回错误代码0xC00470A2。无法分析表达式。它可能包含无效元素或格式不正确。也可能存在内存不足错误。MyProgrammedDataflowTaskWithDerivedColumn.dtsx 下面是我的密码- //创建应用程序 应用程序app=新应用程序(); //创建一个包 Package pkg=新包(); //设置一些属性 pkg.Name=@“MyProgrammedDataflowTaskWithDerivedColumn”; //向数据库AdventureWorksLT2008R2添加连接 ConnectionManager connmgr=pkg.Connections.Add(“OLEDB”); connmrgravent.ConnectionString=“数据源=412-1682;初始目录=Empdb;提供程序=SQLNCLI11.1;集成安全性=SSPI;自动转换=False;”; ConnMgrAdventure.Name=@“AdventureWorks2008R2”; Description=@“OLEDB源的SSIS连接管理器”; //向数据库导入数据库添加连接 ConnectionManager ConnMgrImport_DB=pkg.Connections.Add(“OLEDB”); ConnMgrImport_DB.ConnectionString=“数据源=412-1682;初始目录=stgEmpdb;提供程序=SQLNCLI11.1;集成安全性=SSPI;自动转换=False;”; ConnMgrImport_DB.Name=@“Import_DB”; ConnMgrImport_DB.Description=@“OLEDB源的SSIS连接管理器”C# 4.0 派生列未映射到输出列?我该怎么办?,c#-4.0,sql-server-2012,ssis-2012,C# 4.0,Sql Server 2012,Ssis 2012,包已成功生成。但是显示以下错误的派生列- 验证错误。这是编程的DataFlowTask派生列[2]:尝试解析表达式“Empid”失败,返回错误代码0xC00470A2。无法分析表达式。它可能包含无效元素或格式不正确。也可能存在内存不足错误。MyProgrammedDataflowTaskWithDerivedColumn.dtsx 下面是我的密码- //创建应用程序 应用程序app=新应用程序(); //创建一个包 Package pkg=新包(); //设置一些属性 pkg.Name=@“My
通过添加下面的代码来验证派生列组件来解决此问题:-
IDTSInput100 DerivedColumnInput = derived.InputCollection[0];
IDTSVirtualInput100 DerivedColumnVirtualInput = DerivedColumnInput.GetVirtualInput();
IDTSVirtualInputColumnCollection100 DerivedColumnVirtualInputColumns = DerivedColumnVirtualInput.VirtualInputColumnCollection;
foreach (IDTSVirtualInputColumn100 virtualInputColumnDT in DerivedColumnVirtualInputColumns)
{
// Select column, and retain new input column
if (virtualInputColumnDT.Name=="Empid")
{
designDerivedColumns.SetUsageType(DerivedColumnInput.ID, DerivedColumnVirtualInput, virtualInputColumnDT.LineageID, DTSUsageType.UT_READONLY);
}
}
IDTSInput100 DerivedColumnInput = derived.InputCollection[0];
IDTSVirtualInput100 DerivedColumnVirtualInput = DerivedColumnInput.GetVirtualInput();
IDTSVirtualInputColumnCollection100 DerivedColumnVirtualInputColumns = DerivedColumnVirtualInput.VirtualInputColumnCollection;
foreach (IDTSVirtualInputColumn100 virtualInputColumnDT in DerivedColumnVirtualInputColumns)
{
// Select column, and retain new input column
if (virtualInputColumnDT.Name=="Empid")
{
designDerivedColumns.SetUsageType(DerivedColumnInput.ID, DerivedColumnVirtualInput, virtualInputColumnDT.LineageID, DTSUsageType.UT_READONLY);
}
}