日期:2014-05-17  浏览次数:20526 次

如何判断两个object类型是否相等,一个是decimal,另一个是double
是这样的,数据库中存的数字,读出来是object类型,但实际是decimal类型,这可以通过断点监视数据类型看出来。
如果用户当前输入和数据库里的不一样,则更新。

如果用字符串判断,会出现数据库里保存的是9.900,但用户界面上显示的是9.9,用户什么也没更改也会被判断成已经修改。

如果用convert.todouble判断,可能出现左右都是DBNull.value的情况。得写好多代码啊,一个简单的数字相等判断,不能简单点吗?

------解决方案--------------------
DBNull.value 从数据库出来的时候.net 默认会成为 null 的啊。
convert 以后null会变成0的。
你是不是弄了什么居然会留下DBNull.value
------解决方案--------------------
decimal a = 9;
double b = 9;
object a1 = a;
object b1 = b;

if (a1 == DBNull.Value)
{
if (b1 == DBNull.Value)
{
Response.Write("OK");
return;
}
}
if ((decimal)a1 == Convert.ToDecimal(b1))
{
Response.Write("OK");
return;
}