DataTable值比较问题 DtlsTb.Rows[di]["VoucherType"] == dt2.Rows[i]["VoucherType"]两个的类型都是int值都是21但是为什么比较结果却是false呢?但是如果类型是string的话结果又可以是true.高手解释下啊. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Convert.ToInt32(DtlsTb.Rows[di]["VoucherType"]) == Convert.ToInt32(dt2.Rows[i]["VoucherType"] ) 默认情况下,DataTable里储存的值都是Object引用类型的而Object默认比较时是引用比较 正解! 或者:DtlsTb.Rows[di]["VoucherType"].ToString() == dt2.Rows[i]["VoucherType"].ToString() DtlsTb.Rows[di]["VoucherType"].ToString() == dt2.Rows[i]["VoucherType"].ToString() 你转换类型在比较,DtlsTb.Rows[di]["VoucherType"]是object类型,当然是false了,要拆箱 DtlsTb.Rows[di]["VoucherType"].ToString() == dt2.Rows[i]["VoucherType"].ToString()orConvert.ToInt32(DtlsTb.Rows[di]["VoucherType"]) == Convert.ToInt32(dt2.Rows[i]["VoucherType"] ) 是2个object比较。=比较的是内存地址。比较引用类型没有意义所以要转化成值类型 DtlsTb.Rows[di]["VoucherType"].Equals(dt2.Rows[i]["VoucherType"]) 需要转换成int型比较,开始是object类型的.int.parse C#后台,如何判断xml是否存在一个属性? 有安全控件的网页,怎样自动登陆? c# 语音包 水晶报表,求双轴柱线图的制作方法,内详有图 请问datagridview里面,怎么设定焦点到某个指定的单元格? 线程如何关闭另一线程打开的对话框??? 求助:关于汉字在html下的编码 Winform子窗口最大化后和主窗口重叠问题 用C#查询ORACLE数据库,用toad工具能查到数据,用我的程序就查不到数据,但是也不报错 请高手指点如何从DataSet对象得到对它进行填充的OleDbDataAdapter对象? .net中相当棘手的一个问题 有谁能帮我,我要绝望了!!!
而Object默认比较时是引用比较
正解! 或者:
DtlsTb.Rows[di]["VoucherType"].ToString() == dt2.Rows[i]["VoucherType"].ToString()
or
Convert.ToInt32(DtlsTb.Rows[di]["VoucherType"]) == Convert.ToInt32(dt2.Rows[i]["VoucherType"] )
=比较的是内存地址。
比较引用类型没有意义
所以要转化成值类型
int.parse