首页 > 解决方案 > 在实体框架中插入设置为空参数的存储过程

问题描述

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

System.NullReferenceException:“对象引用未设置为对象的实例。” System.Windows.Forms.ListControl.SelectedValue.get 返回 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();
}

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

标签: c#entity-frameworknullreferenceexception

解决方案


通过查看异常,它表示ComboBox没有选择任何值。这与 SQL Server 目前不接受无关null

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

object selectedValue = comboBox1.SelectedValue;

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

最重要的是,您可能需要考虑使用Int32.TryParse以确保所选值是实际整数。


推荐阅读