Я пытаюсь импортировать файл .xlsx (MS Excel 2007) в базу данных (My SQL). Он работает на моем локальном ПК, но не на серверном ПК, где приложение запускается под IIS6.
Это сообщение об ошибке, выдаваемое предложением Try-Catch.
An external table is not in the expected format.
Я установил Microsoft Access Database Engine 2010 Redistributable и 2007 Office System Driver на серверный ПК.
Вот код
private void vIPToolStripMenuItem_Click(object sender, EventArgs e)
{
fiDatabase = null;
ofdDatabase.Title = "Select VIP list to input";
ofdDatabase.Filter = "Excel Files|*.xlsx";
if (ofdDatabase.ShowDialog() == DialogResult.OK)
{
fiDatabase = new FileInfo(ofdDatabase.FileName);
if (fiDatabase.Exists)
{
DeleteVIPList();
lblDateCreated.Text = fiDatabase.CreationTime.ToShortDateString();
lblDatabase.Text = fiDatabase.Name;
lblLocation.Text = fiDatabase.DirectoryName;
lblSize.Text = String.Format("{0:0,0.0}", fiDatabase.Length) + " byte";
btnLoadDatabase.Visible = true;
file = new StreamReader(fiDatabase.FullName);
OleDbConnection theConnection =
new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\VIPLIST092211.xlsx;Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\";");
try
{
theConnection.Open();
OleDbDataAdapter theDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", theConnection);
DataSet theDS = new DataSet();
DataTable dt = new DataTable();
theDataAdapter.Fill(dt);
theConnection.Close();
dgvCustomer.DataSource = dt.DefaultView;
lblRecord.Text = dgvCustomer.Rows.Count.ToString();
update = new Update();
update.connectionString = MyCon;
update.UpdateVIPList(dt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("No Database Selected");
}
}
}
Я получил и сообщение об ошибке в «theConnection.Open ()». Пожалуйста, поделитесь со мной решением, если у кого-то была эта проблема раньше. Спасибо.