SSIS如何将数据推送到具有特殊字符列名称的Excel电子表格中?

时间:2016-12-08 21:17:58

标签: c# ssis

我们有一个SSIS包,我们将数据加载到Excel电子表格中。 Excel列需要具有特殊字符的名称,例如“。”,“::” - ex:[ColumnA.property1],[ColumnB :: property2.extension2]。

当我们尝试运行SSIS包时,我们会收到错误(包围无效),因为我们无法将数据处理为包含这些特殊字符的电子表格列。

有没有办法容纳这些?我们被告知这些列名必须符合规定,但由于需要处理的数据太多(经常),我们无法手动执行此操作。

循环遍历列的代码(用C#编写)是:

        foreach (DataRow dt_row in dt.Rows)
        {
            string SchemaName = "";
            string TableName = "";
            object[] array = dt_row.ItemArray;
            SchemaName = array[0].ToString();
            TableName = array[1].ToString();

            //Load Data into DataTable from SQL ServerTable
            // Assumes that connection is a valid SqlConnection object.
            string queryString =
              "SELECT * from " + SchemaName + "." + TableName;
            SqlDataAdapter adapter = new SqlDataAdapter(queryString, myADONETConnection);
            DataSet ds = new DataSet();
            adapter.Fill(ds);


            //Get Header Columns
            string TableColumns = "";

            // Get the Column List from Data Table so can create Excel Sheet with Header
            foreach (DataTable table in ds.Tables)
            {
                foreach (DataColumn column in table.Columns)
                {
                    TableColumns += column + "],[";
                }
            }

,收到的错误是:

  

System.Data.OleDb.OleDbException(0x80040E14):无效的包围   name'[ColumnA.property1]'。在   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult   hr)at   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS   dbParams,Object& executeResult)at   System.Data.OleDb.OleDbCommand.ExecuteCommandText(对象&安培;   executeResult)at   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(的CommandBehavior   行为,String方法)at   System.Data.OleDb.OleDbCommand.ExecuteNonQuery()at   ST_f776e39f704d46f98e2ddf46ae7ec8dd.ScriptMain.Main()

0 个答案:

没有答案