У меня есть таблица Access, в которую я недавно добавил поле вложения. В таблице приведен список компьютеров и информация о каждом компьютере. Пользователи этого приложения, программное обеспечение установлено и так далее. Поле Attachment будет содержать простой текстовый файл конфигурации, полученный с каждого компьютера.C# Обновление поля вложения в существующем Access DB
Я работал с некоторыми код здесь: Programmatically managing Microsoft Access Attachment-typed field with .NET
Моя проблема в том, что я не могу показаться, чтобы обновить правильное поле. Значение файла конфигурации для имени компьютера Боб становится помещенным в правильное поле, но неправильным компьютером, если это имеет смысл. Ниже приведен пример инструкции SQL.
Select * From MyTable WHERE ComputerName Like 'Bob'
Весь сегмент кода ниже в соответствии с запросом.
public void InsertFile(String Path, String CmpName)
{
DBEngine dbe = new DBEngine();
Database db = dbe.OpenDatabase("MyAccessDB.accdb", false, false, "");
Recordset rs = db.OpenRecordset(
"SELECT * FROM MyTable WHERE ComputerName LIKE '" + CmpName + "\'",
RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic);
rs.MoveFirst();
rs.Edit();
Recordset2 rs2 = (Recordset2)rs.Fields["My_File"].Value;
rs2.AddNew();
Field2 f2 = (Field2)rs2.Fields["FileData"];
f2.LoadFromFile(Path);
rs2._30_Update();
rs2.Close();
rs._30_Update();
rs.Close();
}
Я надеялся, что при использовании OpenRecodeset()
приведенное выше утверждение дало бы мне только эту строку, а затем только поле вложения для этой строки. Однако, это не так. Я искал, как найти итерировать набор записей, чтобы найти нужную строку без везения. Я здесь новичок, поэтому надеюсь, что все, что мне нужно, я покрыл.
Можете ли вы показать код вокруг этого заявления? – Steve