我有一个最近添加了附件字段的 Access 表。该表是计算机列表和有关每台计算机的信息。它的用户、安装的软件等等。附件字段将包含从每台计算机接收到的简单文本配置文件。
我使用了一些在这里找到的代码:Programmatically manage Microsoft Access Attachment-typed field with .NET
我的问题是我似乎无法更新正确的字段。这意味着计算机名称 Bob 的配置文件被放置在正确的字段中,但如果这有意义,则错误的计算机。下面是一个 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()
上述语句时只给我该行,然后是该行的唯一附件字段。然而,这种情况并非如此。我已经搜索找到如何迭代记录集以找到正确的行但没有运气。我是新来的,所以我希望我能涵盖我需要的一切。