Как вставить Excel динамические имена столбцов в SQL с помощью C # - PullRequest
0 голосов
/ 15 января 2019

Я хочу вставить данные Excel в SQL, но имена столбцов Excel часто меняются.

Ниже приведен код, который я написал для массовой загрузки Excel

string excelConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES""", path);
        //// Create Connection to Excel Workbook
        {
            string destablename1 = string.Empty;
            destablename1 = "[admin.AttendanceData]";

            DataTable Data = new DataTable();

            using (OleDbConnection conn = new OleDbConnection(excelConnectionString))
            {
                conn.Open();
                OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM [Attendance$]", conn);
                OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(Data);
                conn.Close();
            }

            var dacObj = new DAC();
            String strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(strConnection))
            {
                bulkCopy.ColumnMappings.Add("Emp ID", "Citrix_ID");
                bulkCopy.ColumnMappings.Add("Full Name", "Full_Name");
                bulkCopy.ColumnMappings.Add("Band", "Band");
                bulkCopy.ColumnMappings.Add("Cigna DOJ", "Cigna_DOJ");
                bulkCopy.DestinationTableName = destablename1;
                dacObj.OpenConnection();
                bulkCopy.WriteToServer(Data);
                dacObj.CloseConnection();
            }
        }n

как добавить динамические имена столбцов из Excel в SQL?

пример изображения данных листа Excel

enter image description here

Здесь после Cigna DOJ столбцы будут меняться для каждого месяца.

...