如何在SSIS脚本任务中循环遍历通用对象该对象本质上是一个数据表,但为了从sql过程中获取完整的结果集,我必须将其存储在一个通用对象中。所以如果我有:ObjectA=Dts.Variables[0];那么我将如何提取和操纵它的价值。基本上我想做的是:ObjectA=Dts.Variables[0];strinx=A.Column[0].value.tostring();但这显然行不通。从Object解析数据表没有任何问题。我见过AndyLeonard使用他的ETL框架来做到这一点。你走在正确的道路上,但你看不到全貌。此代码将类型为Variable的对象(大约)分配给A。然后,您尝试访问不存在的属性。对象A=Dts.Variables[0];您需要获取变量的值。您可以将此作为AObjectA=Dts.Variables[0].Value;的赋值;或者,如果您需要对实际变量执行其他操作,则必须保留当前的??A代码分配,然后访问Value属性。对象A=Dts.Variables[0];DataTableB=(DataTable)A.Value;DataRowC=B.Row[0];字符串x=C.Column[0].ToString();上面的数据表/数据行代码是近似的。重要的一点是,要访问SSIS变量持有的好东西,您需要访问对象的值。我无法得到上面的任何答案,所以下面列出了我用来加载数据表的代码。“User::transactionalRepDBs”是Object(System.Object)的SSIS变量,通过执行SQL任务脚本的“FullResultSet”加载。使用的脚本任??务是C#。这个链接帮助了我。使用System.Data.OleDb;DataTabledt=newDataTable();OleDbDataAdapter适配器=newOleDbDataAdapter();adapter.Fill(dt,Dts.Variables["User::transactionalRepDBs"].Value);字符串_showMe;foreach(DataRowrowindt.Rows){//insertwhatyouwanttodoherefor(inti=0,_showMe="";i建议#1:按名称访问变量,而不是数字索引。建议#2:将将Value属性的结果转换为您期望的对象类型。因此:stringmyString=(string)Dts.Variables["MyString"].Value;DataTablemyTable=(DataTable)Dts.Variables["MyTable"].Value;DataTablemyOtherTable=Dts.Variables["MyOtherTable"].ValueasDataTable;太棒了,太棒了。。以上就是C#学习教程:如何在SSIS脚本任务中循环遍历一个普通对象share的全部内容,如果对大家有用,还需要进一步了解C#学习教程,希望你多注意---DataTabledt=newDataTable();OleDbDataAdapter适配器=newOleDbDataAdapter();adapter.Fill(dt,Dts.Variables["User::transactionalRepDBs"].Value);//工作得很好。...ssis,c#DataTabledt=newDataTable();OleDbDataAdapter适配器=newOleDbDataAdapter();adapter.Fill(dt,Dts.Variables["User::VariableObj"].Value);foreach(DataColumncolsindt.Columns){MessageBox.Show("ColumName="+cols.ToString());}foreach(DataRowrowindt.Rows){MessageBox.Show("rowsID="+row[0].ToString()+"rowsName="+row[1].ToString());}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
