Обновление файла Excel, который считывается из

У меня есть файл Excel, который читается, данные, которые читаются, используются для продолжения потока, в конце потока, который я хочу записать на рабочий лист Excel.

Когда я пытаюсь записать обратно на рабочий лист Excel, я получаю сообщение об ошибке:

"Operation must use an updateable query" 

Соединение все еще открывается, когда я пытаюсь выполнить запрос, есть ли способ обойти это?

Вот мой код ниже, который я вызываю в конце потока, чтобы обновить строку:

  public void insertToDataSheet(string loanAct) { try { string srcExcel = "C:\\Desktop\\OLBBAppTestData.xlsx"; System.Data.OleDb.OleDbConnection MyConnection; System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); MyConnection = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + srcExcel + "; Extended Properties = 'Excel 8.0;HDR=Yes;'"); MyConnection.Open(); myCommand.Connection = MyConnection; string sql = "UPDATE [Global$] SET o_AccountNumber ='321' WHERE TestID='1'"; myCommand.CommandText = sql; myCommand.ExecuteNonQuery(); //Error message occurs here once it tries to execute MessageBox.Show("Insert Success!"); MyConnection.Close(); } catch (Exception eInnerData) { MessageBox.Show("Method: getInnerData " + eInnerData.ToString()); } } 

Соединение сначала открывается, чтобы считывать и извлекать данные, он открывается в другой программе

Вот код, который делает это ниже:

 namespace OLBBv2 { [TestFixture] public class testcase: UnitTestClassBase { public IBrowser browser; public static string testID; public eDriver driver; private string conSrc = "'C:\\Desktop\\OLBBAppTestData.xlsx'"; private string workSheet = "Global"; public void doStuffHere() { testID = "1"; // Dynamic per test case generated driver = new eDriver(); driver.eConnection(conSrc, testID); //this is where the connection is first made to read the data driver.getTestFlow(workSheet); foreach (string tmp in driver.GlobalTestFlow.Keys) { switch (driver.GlobalTestFlow[tmp].ToString()) { case "OpenActivateLoan": cOLBBOpenActivateLoan exeOpenActivateLoan = new cOLBBOpenActivateLoan(); exeOpenActivateLoan.StandAlone(driver, driver.GlobalTestFlow[tmp].ToString()); //This is where insertToDataSheet() is called break; default: break; } } } } } 

Я пробовал функцию insertToDataSheet () и вставлял в новый файл Excel и его работы. Изменив источник Excel на другой

Давайте будем гением компьютера.