2013-02-19 269 views
2

我有一个DataGridView,并在索引0处添加了一个名为SellQtyCheckbox的列。用户在选择checkbox时必须输入int值。如果没有,我显示一条消息来输入值。现在问题是我从SellQty单元中获取值并将其存储在object中,并检查它是否为null检查对象是否为空或为空

object SellQty = gvProductBatch.Rows[i].Cells["txtSellQty"].Value; 
if(SellQty!=null) 
    // do something 

else 
    // ..Show message. 

这工作正常。但问题在于,当用户输入一个值并将其删除时,存储在其中的值为{}即空。我想知道如何检查一个对象是否为空。我已经搜索了相同的内容,但没有找到答案来处理空对象。所有结果都是针对if对象为空的。

+0

得到实际的编辑的值类型转换的对象的字符串,然后检查是否为空或空... – 2013-02-19 13:03:44

+1

你的意思是价值'{}'是'DBNull'。所以你可以检查例如'if(SellQty == DBNull.Value)' – 2013-02-19 13:04:14

+0

为什么当它是一个'string'时将它保存为'object'? – juharr 2013-02-19 13:04:17

回答

1

您可以通过使用.EditedFormattedValue

if (string.IsNullOrWhiteSpace(gvProductBatch.Rows[i].Cells["txtSellQty"].EditedFormattedValue.ToString()) 
{ 
    //Do something 
} 
+0

我正在使用3.5.Anywaz我已经使用了NullorEmpty,它的工作原理非常棒。感谢mate.Can你可以解释一下这行代码。 – Prathap 2013-02-19 13:27:03

+0

heres [msdn](http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.editedformattedvalue.aspx)参考将向您解释。欢迎':)' – spajce 2013-02-19 13:28:56

+0

通过it.Thanks.I改变了验证和计算在我的整个module.It工程很好。当用户在整个模块中输入一个空格时,我没有处理这个异常。现在它很好用 – Prathap 2013-02-19 13:37:10