C# C现有访问数据库上的附件字段更新

C# C现有访问数据库上的附件字段更新,c#,attachment-field,C#,Attachment Field,我有一个最近添加了附件字段的访问表。该表列出了计算机和每台计算机的相关信息。it用户、安装的软件等。附件字段将包含从每台计算机接收的简单文本配置文件 我使用了以下代码: 我的问题是我似乎无法更新正确的字段。这意味着计算机名Bob的配置文件被放在正确的字段中,但如果有意义,则放在错误的计算机中。下面是一个SQL语句示例 从MyTable中选择*ComputerName,如“Bob” 请按要求填写下面的整个代码段 public void InsertFileString路径,字符串CmpName {

我有一个最近添加了附件字段的访问表。该表列出了计算机和每台计算机的相关信息。it用户、安装的软件等。附件字段将包含从每台计算机接收的简单文本配置文件

我使用了以下代码:

我的问题是我似乎无法更新正确的字段。这意味着计算机名Bob的配置文件被放在正确的字段中,但如果有意义,则放在错误的计算机中。下面是一个SQL语句示例

从MyTable中选择*ComputerName,如“Bob” 请按要求填写下面的整个代码段

public void InsertFileString路径,字符串CmpName { DBEngine dbe=新的DBEngine; Database db=dbe.OpenDatabaseMyAccessDB.accdb,false,false; 记录集rs=db.OpenRecordset 从MyTable中选择*,其中ComputerName如“+CmpName+\”, RecordsetTypeEnum.dbOpenDynaset,0,LockTypeEnum.dbOptimious; 首先是卢布; 编辑; recordset2rs2=Recordset2rs.Fields[My_File].Value; rs2.1新增; field2f2=Field2rs2.Fields[FileData]; f2.LoadFromFilePath; rs2._30_更新; rs2.关闭; rs.(30)更新; rs.关闭; }
我希望在使用OpenRecodeset时,上面的语句将只给出该行,然后是该行的唯一附件字段。但事实并非如此。我一直在搜索如何迭代记录集以找到正确的行,但没有运气。我是新来的,所以我希望我涵盖了我需要的所有内容。

我不确定我是否理解您的问题,但如果您只需要附件字段,您的SQL查询应该是:

"SELECT attachment FROM MyTable WHERE UCASE(ComputerName) = 'BOB'"

请注意,where子句where ComputerName(如“Bob”)只有在字段ComputerName是主键字段或定义了唯一索引的情况下才能可靠工作

在任何情况下,都应该定义主键,这样可以确保以可靠的方式标识要更新的表记录

更新

如果ComputerName是主键,则不要使用LIKE比较,而是使用=

从MyTable中选择附件,其中ComputerName='Bob'
你能把那句话的代码给我看看吗?不客气。我通常不喜欢SQL,因为它的行为在数据库引擎中是不同的。最简单的方法是将两个字符串转换为大写,然后运行比较。