2013-04-24 4 views
2

Я пытаюсь прочитать и обновить Excel с помощью Oledb и Dataset в C#.Не удается обновить файл Excel, если Excel не открыт?

Чтение Работа прекрасна, даже если файл Excel открыт или нет.

Операция обновления работают только если файл открыт но Update Операция ошибка дает, если файл Excel не Open

Code : 
string query2 = "SELECT * FROM [Fixtures Input$A:IP]"; 
     string qupdate;   
     string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("SAE.xls") + ";Mode=ReadWrite;" + "Extended 
Properties=\"Excel 8.0;IMEX=0;HDR=YES;TypeGuessRows=0;ImportMixedTypes=Text\""; 
     con = new OleDbConnection(conStr); 
     con.Open(); 
     cmd2 = new OleDbCommand(query2, con); 
     adap2 = new OleDbDataAdapter(cmd2); 
     ds2 = new DataSet(); 
     adap2.Fill(ds2, "Fixtures Input"); 

     #region "DoingRowEmpty" 
     for (int i = 1; i <= 10; i++) 
     { 
      DataRow aaa = ds2.Tables[0].Rows[i]; 
      aaa.BeginEdit(); 
      //aaa.ItemArray[2] = "test"; 
      aaa.EndEdit(); 
      id = Convert.ToString(i); 

      qupdate = "UPDATE [Fixtures Input$] SET [Fixtures] = '', [Fixture Type] = '', [x] = '' , [(R/N)] = '' , [Fixture Quantity] = '' ," 
         + " [Quantity of Gangs] = '' , [Sensor mount] = '' , [new lamps] = '', [High bay] = '', [burn/year] = '' ,[Ladder] = '' where [id] = '" + id + "'"; 

      adap2.UpdateCommand = new OleDbCommand(qupdate, con); 

      adap2.Update(ds2.Tables[0]); 
} 
#endregion 

любые предложения плз?

+0

какая ошибка вы получаете? –

+0

ошибка: несоответствие типа данных в выражении критериев. но если я открою Excel и запустим, проект будет успешно выполнен – user1187585

ответ

0

Обязательно ли файл Excel должен быть открыт перед запуском программы?