木子屋 Dnawo's BLOG

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

👤 dnawo 📅 2009-09-24 👁 4979 👍 0 💬 0 🔄 本站原创
图片

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

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 ComboBox绑定数据源示例 下一篇 → 淘宝助理之宝贝上架/下架