定义的字段太多 Access DB Oledb
Posted
技术标签:
【中文标题】定义的字段太多 Access DB Oledb【英文标题】:Too many fields defined Access DB Oledb 【发布时间】:2021-06-10 09:40:00 【问题描述】:你好,我的问题是这样的。当我想更新 Access 数据库中的数据记录时,我收到错误“定义的字段太多”。我自己创建更新字符串。
string query = "";
query = "UPDATE Example SET Dateiname = '" + listofObjects[i].fileName
+ "', Dateidatum = '" + listofObjects[i].fileDate
+ "', DateidatumString = '" + listofObjects[i].dateTimeString
+ "', VolleStundeString = '" + listofObjects[i].fullHourString
+ "', Datum = '" + listofObjects[i].date
+ "', Transportiert = '" + listofObjects[i].transported
+ "', Erfasst = '" + listofObjects[i].detected
+ "', Transportnummer = '" + listofObjects[i].transportNum
+ "', Bearbeitet = '" + listofObjects[i].processed
+ "', SequenceNumber = '" + listofObjects[i].sequenceNum
+ "', File_Delete = '" + listofObjects[i].file_Delete + "'";
for (int e = 0; e < anzahl; e++)
query += ", WERT_" + (e + 1) + " = '" + listofObjects[i].LineValueObjects[e].value
+ "', WERT_" + (e + 1) + "_O = '" + listofObjects[i].LineValueObjects[e].value_o
+ "', WERT_" + (e + 1) + "_Q = '" + listofObjects[i].LineValueObjects[e].value_q
+ "', WERT_" + (e + 1) + "_Q_VS = '" + listofObjects[i].LineValueObjects[e].value_q_full
+ "', WERT_" + (e + 1) + "_VS = '" + listofObjects[i].LineValueObjects[e].value_full + "'";
query += " WHERE Dateiname = '" + listofObjects[i].fileName + "'";
dbm.updateDB(query);
我还没有找到合适的答案
【问题讨论】:
docs.microsoft.com/en-us/office/troubleshoot/access/… 不是这个。原因 Microsoft Access 用于跟踪表中字段数的内部列计数已达到 255,即使表中的字段可能少于 255 个。发生这种情况的原因是,当您删除字段时,Access 不会更改内部列数。 Access 还会为您修改其属性的每个字段创建一个新字段(将内部列数增加 1)。 啊,好吧,这是否意味着如果我更频繁地更新条目,那么即使我只编辑 40 列,它也会一直计数,因此有时会超过 255? 我了解,即使您编辑 40 列,当您尝试添加新字段时,它也会计数 +1。所以对于 1 行,它可能是 3 或 4 或 5 或 6... 我理解它的意思是访问限制为 255 个字段。但是,如果您使用 180 个字段进行更新,则它不起作用,因为对每个更新的字段的访问需要一个额外的字段来获取更新的值。换句话说,您只有 127 个字段可以在更新语句中更新。 是的。这是。所以我想你解决了。 【参考方案1】:Microsoft Docs 这不是吗?
导致 Microsoft Access 用于跟踪表中字段数的内部列计数已达到 255,即使表中的字段可能少于 255 个。发生这种情况的原因是,当您删除字段时,Access 不会更改内部列数。 Access 还会为您修改其属性的每个字段创建一个新字段(将内部列数增加 1)。
【讨论】:
以上是关于定义的字段太多 Access DB Oledb的主要内容,如果未能解决你的问题,请参考以下文章
根据 Access DB 中另一个表中的多条记录计算字段的值
JET OLEDB 参数如何将字符串与 Access DB 中的文本字段进行比较