SSIS 脚本任务:Select 从数据表 1 到数据表 2

SSIS Script Task: Select from datatable1 into datatable2

我正在使用 SQL 2014,Visual Studio 2013。我有以下代码,它是一个更大的脚本任务的一部分:

//Load DataTable1 with Source Excel Sheet Data
OleDbCommand oconn = new OleDbCommand("select * from [" + sheetname + "]", cnn);
OleDbDataAdapter adp = new OleDbDataAdapter(oconn);
DataTable dt = new DataTable();
adp.Fill(dt);

接下来我想做的是select从数据table1中提取目标列数,然后填充另一个数据table。像这样:

//Load another DataTable with Data from datatable1
OleDbCommand oconn2 = new OleDbCommand("select [column1], [column2] from datatable1", cnn);
OleDbDataAdapter adp2 = new OleDbDataAdapter(oconn2);
DataTable dt2 = new DataTable();
adp2.Fill(dt2);

这可能吗?这背后的原因很复杂,但我不知道另一种解决方法。我的源文件是 Excel。所以数据需要带入一个datatable。然后需要修改列名。然后可以用修改后的列名创建一个table。但首先,需要将数据按原样导入数据table,因为我不确定是否要修改源文件。

谢谢。

使用数据类型和将添加到其中的列的新名称定义第二个 DataTable。然后,您可以使用 Add 方法使用初始 DataTable 中列的序号位置来填充此对象,如下所示。

            DataTable dt2 = new DataTable();
            dt2.Columns.Add("NewColumnName1", typeof(int));
            dt2.Columns.Add("NewColumnName2", typeof(string));

            //in this example dt is the original DataTable
            foreach (DataRow dr in dt.Rows)
            {
                          //add only necessary columns by their
                          //ordinal position in source DataTable
                         dt2.Rows.Add(dr[1], dr[0]);
            }