在 entity framework 中插入带有设置空参数的存储过程

insert stored procedure with set null parameters in entity framework

我想在某些值中插入 null 参数,但出现以下错误:

System.NullReferenceException: 'Object reference not set to an instance of an object.' System.Windows.Forms.ListControl.SelectedValue.get returned null.

该程序是一个Windows Forms应用程序,代码如下:

using (var context = new SamenEntities())
{
    person ppp = new person()
    {
        id = textBox1.Text.Trim(),
        name = textBox2.Text.Trim(),
        family = textBox3.Text.Trim(),
        birth_date = dateTimePicker1.Value,
        birth_provice = Convert.ToInt32(comboBox1.SelectedValue.ToString()),
        note = richTextBox1.Text.Trim(),
        img_personal = ImageToByteArray(pictureBox1.Image),
        date_register = DateTime.Now
    };

    context.persons.Add(ppp);
    context.SaveChanges();
}

如何从 SQL 服务器输入 null 值或输入默认值?

通过查看异常,它表示 ComboBox 没有选择任何值。这与 SQL 服务器此时不接受 null 无关。

有了这些信息,您应该检查是否选择了一个值,这意味着它不是 null,如下所示:

object selectedValue = comboBox1.SelectedValue;

if(selectedValue != null)
{
    ppp.birth_provice = Convert.ToInt32(selectedValue.ToString()),
}

除此之外,您可能需要考虑使用 Int32.TryParse 来确保所选值是一个实际整数。