在SQL程序中returs null for out parametr但在C#中如果我试图检查id == null我得到了System.InvalidCastException 这个错误让我疯狂,因为在debuge模式下id == null为TRUE但无论如何System.InvalidCastException是throwen
var outObj = new System.Data.Entity.Core.Objects.ObjectParameter("ID",typeof(int?));
db.spGetSOFolderID(soid, branchId, outObj, kindID);
int? id = null;
id =(int?)outObj.Value;
if (id==null) ///here error
return null;
答案 0 :(得分:0)
对我来说,问题的根源就是这一行。
db.spGetSOFolderID(soid, branchId, outObj, kindID);
因为,其余的代码似乎正确地发挥作用。
答案 1 :(得分:0)
FINALY找到了解决方案。
var outObj = new System.Data.Entity.Core.Objects.ObjectParameter("FolderID", typeof(int?));
db.spGetSOFolderID(soid, branchId, outObj, kindID);
if (outObj.Value is DBNull)
return null;
int? id = (int?)outObj.Value;
问题确实存在于int? id = (int?)outObj.Value;
但是为什么我在if(id==)
上获得InvalidCastException erro对我来说仍然是秘密。