0

コンボボックス値で Null 参照の例外があります。データベースで null を許可します。しかし、うまくいきません。私は何をすべきか?コメントで例外領域について言及しています。これが私のソースコードです。

private void button1_Click(object sender, EventArgs e)
{
    con.Open();
    cmd.CommandText = "insert into mytable (userid, password, gender) values (@userid, @password, @gender)";
    cmd.Parameters.AddWithValue("@userid", textBox1.Text);
    cmd.Parameters.AddWithValue("@password", textBox2.Text);
    cmd.Parameters.AddWithValue("@gender", comboBox1.SelectedItem.ToString());//Here is exception line (NullReference Exception)
    cmd.ExecuteNonQuery();
    cmd.Clone();
    con.Close();
    MessageBox.Show("Record Added");
}

private void Form2_Load(object sender, EventArgs e)
{
    cmd.Connection = con;
}
4

2 に答える 2

0

comboBox1.SelectedItemnull の場合、ToString()関数を呼び出すことはできません。(それはあなたのエラーです)

使用する:

cmd.Parameters.AddWithValue("@gender", comboBox1.SelectedItem == null ? null : comboBox1.SelectedItem.ToString());
于 2013-02-27T13:47:05.807 に答える
0

これらはほとんどの場合、追跡するのが非常に簡単です。答えは簡単です。の可能性があるため、項目が選択されているかどうかを確認する必要がありcomboBox1.SelectedItemますnull

そう、 ...

if (comboBox1.SelectedItem != null) {

または、 ...

if (comboBox1.SelectedIndex > 0) {

一般に、これに到達するのを防ぐための検証が必要です。

于 2013-02-27T13:45:39.123 に答える