如果Excel未打开,不能更新Excel文件?

我正在尝试使用Oledb和数据集在C#中读取和更新Excel。

即使Excel文件打开或不打开,“读取操作”仍可正常工作。

如果Excel文件未打开,更新操作仅在文件处于打开状态时才起作用,而更新操作发生错误

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 

任何build议plz?

运行程序之前是否需要打开Excel文件?