注意:我已经在MSDN forums上发布了此问题,但未收到任何答案。
您好,
如果表包含唯一可为空的列,则在SqlCeDataAdapter上调用Update会导致问题。出现此问题是因为SqlCeParameter丢弃由其DbCommandBuilder设置的SourceColumnNullMapping属性的更改。这会导致DbDataAdapter中的错误行为,这可能会导致各种异常,具体取决于列类型(例如,当列为字符串类型时,格式异常,并且要提交的行具有此单元格的值,该值无法转换为INT32)。有关此属性的详细信息,为什么需要它以及它如何影响SQL语句,请参阅this MSDN article。
为什么SqlCeParameter不允许设置其SourceColumnNullMapping?如果不更改数据模型,似乎没有解决方法。这是故意遗漏的吗?开发人员没时间用完了吗?这是一个错误吗?如果是的话,我可以在哪里举报?
我已经使用SQL Server CE 4.0(4.0.8482.1)对此进行了测试,甚至尝试了(显然是未公布的?)SP1(4.0.8876.1)。
我真的很期待任何答案!