我在我的项目中使用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/

10-14 10:16