title: Importing Excel sheet into SQL Server with C#
body: <p>I am working on writing a simple program to import an excel sheet into my database but I am running into an error of:</p>
  
  <blockquote>
    <p><em>Could not find installable ISAM</em></p>
  </blockquote>
  
  <p>I am not sure what this means and after hours of searching with so many different topics I have turned to SO.  There is a lot of talk of Jet and ACE where I am not sure what the difference is but here is the rundown: I have an excel file called test or test1 and I just want to import the first sheet in the file. here is my source code so far:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.Windows.Forms;
  using System.Data.OleDb;
  using System.Data.Common;
  using System.Data.SqlClient;
  
  namespace WindowsFormsApplication2
  {
  
      public partial class Form1 : Form
      {
          string filePath = null;
          public Form1()
          {
              InitializeComponent();
          }
  
          //Method to check database connection
          private void button1_Click(object sender, EventArgs e)
          {
              string connetionString = null;
              SqlConnection cnn;
              connetionString = "Data Source=Zach-PC;Initial Catalog=master;Integrated Security=SSPI;";
              cnn = new SqlConnection(connetionString);
              try
              {
                  cnn.Open();
                  MessageBox.Show("Connection Open ! ");
                  cnn.Close();
              }
              catch (Exception ex)
              {
                  MessageBox.Show("Can not open connection ! ");
              }
          }
  
          //Method to select a file
          private void button2_Click(object sender, EventArgs e)
          {
              string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/Zach/Documents/test1.xls;Extended Properties=Excel 12.0,HDR=Yes;IMEX=1";
  
  
              // Create Connection to Excel Workbook
              using (OleDbConnection connection =
                           new OleDbConnection(excelConnectionString))
              {
                  OleDbCommand command = new OleDbCommand
                          ("Select * FROM [Sheet1$]", connection);
  
                  connection.Open(); //HERE IS WHERE THE ERROR IS
  
                  // Create DbDataReader to Data Worksheet
                  using (DbDataReader dr = command.ExecuteReader())
                  {
                      // SQL Server Connection String
                      string sqlConnectionString = "Data Source=Zach-PC;Initial Catalog=master;Integrated Security=True";
  
                      // Bulk Copy to SQL Server
                      using (SqlBulkCopy bulkCopy =
                                 new SqlBulkCopy(sqlConnectionString))
                      {
                          bulkCopy.DestinationTableName = "Table";
                          bulkCopy.WriteToServer(dr);
                          MessageBox.Show("Data Exoprted To Sql Server Succefully");
                      }
                  }
  
              }
          }
      }
  }
  </code></pre>
  
  <p>Am I approaching this in the right manor?</p>