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的时候,需要将语句修改为
执行成功