.NET数据集(xsd)运行出错:标准表达式中数据类型不匹配



主要是因为参数集中参数顺序和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)


上一篇: ComboBox绑定数据源示例
下一篇: 淘宝助理之宝贝上架/下架
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 4265
发表评论
登录后再发表评论!