我正在使用Windows Form Application ..其中有很多文本框和组合框这是我的数据输入表格... 当我将数据插入数据库时,我得到了以下异常....
string NickName = comboBox1.SelectedValue.ToString();//object reference not set to an instance of an object
Nick Name是我的案例中的可选字段...... 我的问题是为什么combobox SelectedValued什么时候没有Seleceted抛出异常?怎么克服这个?.. 任何帮助将不胜感激。谢谢提前
答案 0 :(得分:2)
我的问题是为什么combobox SelectedValued当没有任何选择时抛出异常?
选择nothig时comboBox1.SelectedValue
会返回null
,如果您致电null
上的任何成员,则会抛出NullReferenceException
。
如何克服这个问题?
您可以在尝试访问其值之前检查null
或
您可以检查其SelectedIndex
值。
解决方案:您可以使用以下任何一种方法来解决问题。
方法1:使用if-condition
string NickName = string.Empty;
if(comboBox1.SelectedValue != null)
NickName = comboBox1.SelectedValue.ToString();
方法2:使用conditional(ternary ?:) operator
string NickName = (comboBox1.SelectedValue != null) ?
comboBox1.SelectedValue.ToString() : string.Empty;
方法3:使用null-coalescing ??
运算符
string NickName =(string) comboBox1.SelectedValue ?? string.Empty;
方法4 :选中SelectedIndex
string NickName = (comboBox1.SelectedIndex >= 0) ?
comboBox1.SelectedValue.ToString() : string.Empty;
答案 1 :(得分:0)
因为您正在尝试转换null
对象
string NickName = comboBox1.SelectedValue == null? "":comboBox1.SelectedValue.ToString();