Внешняя таблица не в ожидаемом формате - PullRequest
0 голосов
/ 19 сентября 2018

Я знаю, что этот вопрос задавался здесь несколько раз, но я последовал советам и все еще получаю сообщение об ошибке: External table is not in expected format. В моем приложении есть DataGrid, который правильно отображает содержимое файла Excel, и когда я обновляю DataGrid, он показывает добавленную строку вфайл Excel. Но когда я открываю файл Excel, чтобы проверить, добавлена ​​ли строка, это не так - новая строка не сохраняется.

Буду признателен за вашу помощь.

В моем приложении Wpf естьстрока подключения в App.config:

add name="ExcelConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=excel_file\\events2.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES""

Я использую OLEDB для соединения с файлом Excel:

public Events()
{
    InitializeComponent();

    System.Data.OleDb.OleDbConnection excelConnection;
    System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
    var connectionString = ConfigurationManager.ConnectionStrings["ExcelConnectionString"].ToString();

    excelConnection = new System.Data.OleDb.OleDbConnection(connectionString);
    try
    {
        String sql = null;
        excelConnection.Open();
        myCommand.Connection = excelConnection;
        sql = "Select * from [events$]";
        myCommand.CommandText = sql;
        myCommand.ExecuteNonQuery();

        System.Data.OleDb.OleDbDataAdapter dataAdp = new System.Data.OleDb.OleDbDataAdapter(myCommand);
        DataTable dt = new DataTable("events");
        dataAdp.Fill(dt);
        dgData.ItemsSource = dt.DefaultView;
        dataAdp.Update(dt);

        excelConnection.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
    finally
    {
        excelConnection.Close();
    }
}
...