Я импортирую данные из Excel в электронную таблицу.Я использую только OLEDB для чтения.Но у меня возникли проблемы с сохранением результата обратно в исходный файл.Ниже приведен мой код.
string ExcelConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Mode=ReadWrite;" +
"Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";",
Server.MapPath("./Uploads/" + excelName));
try
{
OleDbDataAdapter ExcelDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$A8:AZ67]", ExcelConnectionString);
DataSet objDataSet = new DataSet();
ExcelDataAdapter.Fill(objDataSet, "ExcelTable");
for (int i = 0; i < objDataSet.Tables[0].Rows.Count; i++ )
{
Slab slb = new Slab();
slb.ReceiveDate = objDataSet.Tables[0].Rows[i].Field<DateTime>(0);
slb.VesselName = objDataSet.Tables[0].Rows[i].Field<string>(1);
slb.Lot = Convert.ToInt16(objDataSet.Tables[0].Rows[i].Field<double>(2));
slb.SlabSource = objDataSet.Tables[0].Rows[i].Field<string>(3);
slb.CertificateNumber = objDataSet.Tables[0].Rows[i].Field<string>(4);
//I think the next two lines do the same thing.
objDataSet.Tables[0].Rows[i][4] = "message here";
objDataSet.Tables[0].Rows[i].SetField<string>(51, "message here");
ExcelDataAdapter.Update(objDataSet, "ExcelTable");
.............
}
Я получаю следующую ошибку:
Для обновления требуется допустимая команда UpdateCommand при передаче коллекции DataRow с измененными строками.
Документация показывает синтаксис команд обновления, подобный следующему:
Таблица ОБНОВЛЕНИЙ SET fieldID = 1, Описание = 'nice' ГДЕ RegionID = 1 Но это не будет работать для меня, мне нужно обновить текущийстрока в цикле for.
Любая помощь приветствуется, спасибо