SQL Server 从数据类型 varchar 转换为 numeric 时出错 问题

从前台做数据查询时,报错信息如下:

System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.SqlClient.SqlException: 从数据类型 varchar 转换为 numeric 时出错。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()

起因是 ,前台传参数是 parms.NOW_MONEY = 'is not null'  ,

后台SQL查询时,条件写的是

<isNotEmpty prepend="AND" property="NOW_MONEY">
    PRDY.NOW_MONEY = '$NOW_MONEY$'
</isNotEmpty>

所以导致查询报错,正确写法是

<isNotEmpty prepend="AND" property="NOW_MONEY">
    PRDY.NOW_MONEY  is not null
</isNotEmpty>

拓展:

SQL Server 从数据类型 varchar 转换为 numeric 时出错

1,起因

2,执行语句

 

错误提示:

 

3,原因

因为浮点类型的数据字段无法插入空数据

4,解决

所以我在写后端拼接sql的时候,需要将语句修改为

 

 执行成功

 

posted @ 2022-06-07 16:01  小小叶弯  阅读(4061)  评论(0编辑  收藏  举报