【发布时间】:2012-02-20 06:12:47
【问题描述】:
我在我的项目中使用 WinForms 和 MySQL。
我的表结构是……
在我的项目中,我有三个组合框和一个文本框。 “选项”ComboBox 包含三个值:
- 城市
- 状态
- 国家
当我选择城市时,必须选择州和国家组合框。
当我选择州时,必须选择国家组合框。
当我选择国家时,不需要选择州和国家组合框。
我尝试使用此代码插入此数据:
MySqlConnection connection = new MySqlConnection("server=192.168.1.100;User Id=mcubic;password=mcs@2011$;database=mcs;Persist Security Info=True");
MySqlCommand command = new MySqlCommand("Insert into test (name1,option1,state,country) VALUES ('" + textBox1.Text + "','" + cmbo_Options.SelectedItem.ToString() + "','" + cmbo_state.SelectedItem.ToString() + "','" + cmbo_country.SelectedItem.ToString() + "')", connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
当所有 ComboBox 都被选中时,此代码可以正常工作。但是当没有选中 State ComboBox 时,会抛出 NullReferenceException。
对象引用未设置为对象的实例。空错误。
所以我更新了我的代码:
string country = cmbo_country.SelectedItem.ToString();
string state = cmbo_state.SelectedItem.ToString();
MySqlConnection connection = new MySqlConnection("server=192.168.1.100;User Id=mcubic;password=mcs@2011$;database=mcs;Persist Security Info=True");
MySqlCommand command = new MySqlCommand("Insert into test (name1,option1,state,country) VALUES ('" + textBox1.Text + "','" + cmbo_Options.SelectedItem.ToString() + "','" + state + "','" + country + "')", connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
我无法逃脱这个错误。我的代码应该如何用于这个项目?
【问题讨论】:
-
调试您的代码,找到引发异常的确切行。 ...SelectedItem 可以为空。
-
cmbo_country.SelectedItem.ToString();给出错误。如何解决这个问题?。
-
所以,然后 ToString() 抛出错误,因为组合框为空或没有选定的项目。你应该处理这种情况,例如 - 写'if'条件。
-
我可以去 cmbobox.Text Propriety 吗?
-
您可以在 MSDN 中找到此信息,或者尝试测试一下。但我建议您初始化您的组合框 - 填充值并选择默认项(例如 - SelectedIndex = 0)。它将帮助您避免这个问题。
标签: c# mysql winforms combobox