我在Microsoft Access数据库上运行ASP.NET查询。错误状态:列'Area1'不属于表。
看起来错误发生在这里:
cmd.Parameters.AddWithValue("@" + columnName, progressRow[columnName]);
sql命令如下所示:
Extract.exe警告:0:03/09/2014 10:48:28 | CSUtilities |塞伦盖蒂|添加查询:INSERT INTO属性(Address1,Address2,Address3,Address4,Area1,Area10,Area11,Area12,Area13,Area14,Area15,Area16,Area17,Area18,Area19,Area2,Area20,Area3,Area4,Area5,Area6,Area7 ,区域8,Area9,BlockFlag,CapitalValue,ConstructionYear,CurrentStock,部门,DepartmentFIS,DisposalDate,DisposalReason,DoubleBeds,DwellingType,DwellingTypeCode,EastingGridRef,ElevationGridRef,HeatingCode,HouseNumber,KeyBlockProperty,KeyCurrTcyId,KeyProperty,KeyPropertyTypeCode,KeyStreet,LocalPerm,NorthingGridRef,OwningDepartment ,Postcode,PropertyClassCode,PropertyGroup,QLX,RepairResponsibility,RiskLevel,RTBCode,SingleBeds,StatPerm,Suffix,Telephone,TenureCode,UserCode,Void,WardCode,WaterCode,UpdateFlag)VALUES(?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?)
区域1在设计视图中明确定义为短文本字段。
我手动运行了以下测试并且可以正常运行:
INSERT INTO Property (Address1,Address2,Address3,Address4,Area1) VALUES ('Test1','Test','Test','Test','Test')
它在玩什么?
答案 0 :(得分:0)
可能会混淆命名的参数与列名相同(我以前见过它,但不记得哪个引擎)。尝试将值添加参数的功能更改为" @ x" +列名...这样OleDb驱动程序不会试图寻找一个列Area1来匹配@ Area1,但是寻找@ xArea1(其余部分也是如此)。
另一种可能性是您要插入的数据。可能会有像#" @"等特殊字符的东西。或"?"在这些混淆帖子的领域中是否类似?