
主要是因为参数集中参数顺序和SQL语句参数顺序没有对应而导致的。例如本例SQL语句:
Insert INTO Products
(ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)而参数集中参数顺序:

将SupplierID和ProductName参数位置对调就正常了。
说明
上述问在MSSQL中并不存在,这是由于MSSQL的SQL语句参数都有名称,传入时是以参数名对应的,而ACCESS的SQL语句参数都用?表示,传入时只能以位置对应,所以上面对调的实际是类型,而不是SupplierID和ProductName参数,名称在ACCESS中其实没多大意义。
vs为Insert语句生成的参数名大都没有意义的,得手工修改,但重新配置Insert语句后这些修改都将丢失,得再次修改(仅针对Insert语句,Update、Delete、Select不会),这也是ACCESS特有的:
public virtual int Insert1(string ProductName, int SupplierID, int CategoryID, string QuantityPerUnit, decimal UnitPrice, int UnitsInStock, int UnitsOnOrder, int ReorderLevel, bool Discontinued)重新配置后:
public virtual int Insert1(bool Discontinued, string Param2, string Param3, string Param4, string Param5, string Param6, string Param7, string Param8, string Param9)
评论(0)
暂无评论。