使用SQL server数据库写语句时出现这个错误,上网一查发现这个错误挺常见的,评论区解释方法一大堆,我瞅了一眼全是垃圾,没有一个写到点子上的。
问题复现
这个问题报错也有可能出现在VS中,其实实质上都是sql语句写错了,官方解释是有特殊类型的字符要从数据库中读取,因为源数据包含了超过目标数据类型所能表示的最大值或超过目标数据类型的有效位数。这可能是由于数据输入错误、数据存储错误或目标数据类型不足以容纳源数据导致的。
其实就是你SQL语句写错了,比如我这个例子中
SELECT * FROM tb_PlanManager WHERE PlanID = 202305110001
解决问题
PLanID的数据类型是nvarchar(50),那么在SQL语句中就应该给PlanID的值加上引号,
SELECT * FROM tb_PlanManager WHERE PlanID = '202305110001'
检查SQL语句!!!