Я делаю следующее, чтобы вставить строку на листе excel, используя Microsoft.ACE.OLEDB в качестве поставщика в коде C#: 1- у меня есть следующая строка соединения:Как вставить новую строку в лист Excel с помощью Microsoft.Ace.Oledb в VS 2012, используя C#
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.xlsx;Mode=ReadWrite;ReadOnly=False;Extended Properties=""Excel 12.0 Xml;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text;HDR=YES""");
2- и следующий код для вставки:
string strSQL = "INSERT INTO [sheet1$] (Id, Name, parentId) VALUES(196,'test',1)";
OleDbConnection excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);
dbCommand.ExecuteNonQuery();
dbCommand.Dispose();
excelConnection.Close();
excelConnection.Dispose();
Но когда я запускаю мой код я следующее исключение OleDbException, при открытии соединения :
Could not find installable ISAM
Я выполнил свой поиск и обнаружил, что он связан с плохим строковым кодом, поэтому после нескольких попыток я обнаружил, что когда я удалил «ReadOnly = False;» из строки соединения исключение OleDbException изменено на:
Operation must use an updateable query
При выполнении команды «dbCommand.ExecuteNonQuery»; поэтому я также выполнил поиск и обнаружил, что это проблема с разрешением, поэтому я дал файлу Excel полное разрешение для изменения группой пользователей «Все», но все же имеет то же исключение. Я действительно потерялся здесь, я пробовал так много вещей, и я был бы признателен за любую помощь; я почти уверен, что это глупая ошибка!