Link to home
Start Free TrialLog in
Avatar of programmerist 1983
programmerist 1983Flag for Türkiye

asked on

How can i get column name from excel to create sql column?

i need to help to generate column name from excell automatically. i think that: we can do below codes:
CREATE TABLE [dbo].[Addresses_Temp] ( 
    [FirstName]   VARCHAR(20), 
    [LastName]    VARCHAR(20), 
    [Address]     VARCHAR(50), 
    [City]        VARCHAR(30), 
    [State]       VARCHAR(2), 
    [ZIP]         VARCHAR(10) 
) 

Open in new window


via C#. How can i learn column name from excel?
  private void Form1_Load(object sender, EventArgs e)
        {
            ExcelToSql();
        }


        void ExcelToSql()
        {

            string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Source\MPD.xlsm;Extended Properties=""Excel 12.0;HDR=YES;""";
            // if you don't want to show the header row (first row)            
            // use 'HDR=NO' in the string             
            string strSQL = "SELECT * FROM [Sheet1$]";            
            OleDbConnection excelConnection = new OleDbConnection(connectionString);           
            excelConnection.Open(); // This code will open excel file.            
            OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);          
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);            
            // create data table            
            DataTable dTable = new DataTable();            
            dataAdapter.Fill(dTable);            
            // bind the datasource          
          //  dataBingingSrc.DataSource = dTable;         
            // assign the dataBindingSrc to the DataGridView         
           // dgvExcelList.DataSource = dataBingingSrc;             // dispose used objects          
            if (dTable.Rows.Count > 0)
                MessageBox.Show("Count:"+dTable.Rows.Count.ToString());
            dTable.Dispose();           
            dataAdapter.Dispose();           
            dbCommand.Dispose();            
            excelConnection.Close();           
            excelConnection.Dispose();
        }

Open in new window

Avatar of cyberkiwi
cyberkiwi
Flag of New Zealand image

Just an example.

            if (dTable.Rows.Count > 0)
                MessageBox.Show("Count:"+dTable.Rows.Count.ToString());
foreach (DataColumn col in dTable.Columns)
     MessageBox.Show(col.ColumnName); // gets the column names from the dTable.Columns collection
Avatar of programmerist 1983

ASKER

Also i need to get sheetName Programmatically? Can i write "SELECT * FROM [Sheet1$]" programatically?
ASKER CERTIFIED SOLUTION
Avatar of kris_per
kris_per

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial