C# 从一个数字进行强制转换时,该值必须小于无穷大2

C# 从一个数字进行强制转换时,该值必须小于无穷大2,c#,sql,oracle,C#,Sql,Oracle,在我的代码中,我有一个对oracle表retenue的请求,toad中的查询很好,但.net中不会在标题中引发异常。 激发此行中的异常: (int)session.CreateSQLQuery(sql).UniqueResult() : 请帮忙 var sql = "select id_retenue from RETENUE where ID_BAR = " + idbar + " and ID_ORGANISATION = " + idorg; int ret_id = (int)sessi

在我的代码中,我有一个对oracle表retenue的请求,toad中的查询很好,但.net中不会在标题中引发异常。 激发此行中的异常:

(int)session.CreateSQLQuery(sql).UniqueResult()

: 请帮忙

var sql = "select id_retenue from RETENUE where ID_BAR = " + idbar + " and ID_ORGANISATION = " + idorg;
int ret_id = (int)session.CreateSQLQuery(sql).UniqueResult();

首先:使用绑定变量。为了提高性能,更重要的是防止sql注入。返回值可能太大,无法转换为int。请将int强制转换和查询执行拆分为单独的行以确保。问题已解决:int ret_id=real_value==null?0:Int32.Parse(real_value.ToString());