我正在尝试从FoxPro到C#的一张桌子。我使用以下声明;
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.
以前有人见过这个错误吗?如果是的话,我该如何解决这个问题呢?
发布于 2016-08-08 14:45:25
如果日期时间因错误消息而窒息,您可以尝试通过
AND ew.ew_from > CTOD( ? )";参数作为日期的字符串。
sqlCmd.Parameters.AddWithValue("pDate", "01/08/2016");VFP的命令CTOD()意味着字符的日期,并且由于您已经采用了预期的月/日/年格式,所以应该通过。
如果失败实际上发生在另一个字段上,比如"ew.ew_totdays",那么您可以从更新查询开始,将返回的字段限制为ID键,不要使用where子句。然后,如果它通过,一次添加一个字段。数据中的某个地方可能有一个空值。
如果所有字段都正常,则可能必须根据WHERE子句和剥离条件一次应用查询,直到全部应用为止。
https://stackoverflow.com/questions/38831841
复制相似问题