首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OleDB无法确定十进制值

OleDB无法确定十进制值
EN

Stack Overflow用户
提问于 2016-08-08 14:27:57
回答 1查看 937关注 0票数 3

我正在尝试从FoxPro到C#的一张桌子。我使用以下声明;

代码语言:javascript
复制
sqlCmd.CommandText = @"SELECT ew.ew_pplid, ew.ew_name, ew.ew_from, ew_to, ew.ew_totdays
                       FROM empwork ew
                       INNER JOIN employs emp ON ew.ew_pplid = emp.em_pplid
                       WHERE emp.em_netname NOT LIKE '' 
                       AND TRIM(emp.em_netname) <> '' 
                       AND emp.em_type <> 2
                       AND ew.ew_from > ?";
sqlCmd.Parameters.AddWithValue("pDate", Convert.ToDateTime("01/08/2016"));

但是我得到了一个我从未见过的错误;

The Provider could not determine the Decimal value. For example, the row was just created, the default for the Decimal column was not available, and the consumer had not yet set a new Decimal value.

以前有人见过这个错误吗?如果是的话,我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-08 14:45:25

如果日期时间因错误消息而窒息,您可以尝试通过

代码语言:javascript
复制
 AND ew.ew_from > CTOD( ? )";

参数作为日期的字符串。

代码语言:javascript
复制
sqlCmd.Parameters.AddWithValue("pDate", "01/08/2016");

VFP的命令CTOD()意味着字符的日期,并且由于您已经采用了预期的月/日/年格式,所以应该通过。

如果失败实际上发生在另一个字段上,比如"ew.ew_totdays",那么您可以从更新查询开始,将返回的字段限制为ID键,不要使用where子句。然后,如果它通过,一次添加一个字段。数据中的某个地方可能有一个空值。

如果所有字段都正常,则可能必须根据WHERE子句和剥离条件一次应用查询,直到全部应用为止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38831841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档