我在我的项目中使用WinForms和MySQL。
我的表结构是...
在我的项目中,我有三个组合框和一个TextBox。 “选项”组合框包含三个值:
市
州
国家
当我选择城市,州和国家组合框时,必须选中。
当我选择州时,必须选择国家/地区组合框。
当我选择国家/地区时,无需选择州和国家/地区组合框。
我试图使用以下代码插入此数据:
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();
选择所有ComboBoxes后,此代码即可正常工作。但是,当未选择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();
我无法摆脱这个错误。我的代码应如何用于该项目?
最佳答案
我有一个简单的方法,
string country ="";
if(cmbo_country.SelectedItem != null)
country = cmbo_country.SelectedItem.ToString();
string state = "";
if(cmbo_state.SelectedItem !=null)
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();
在这种情况下,您不需要任何尝试和捕获。
关于c# - WinForm组合框上的Null错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9030188/