C# System.NullReferenceException:对象引用未设置为对象的实例

C# System.NullReferenceException:对象引用未设置为对象的实例,c#,image,linq-to-sql,C#,Image,Linq To Sql,在这段代码中,我想使用linqtosql将图像保存在数据库中的picturebox1中。。。。。但在将图像转换为字节数组时遇到一些异常 异常为“System.NullReferenceException:对象引用未设置为对象的实例” 例如,创建Memorystream时,必须与字节[]关联 字节[]buf=新字节[4096] 那你就可以了 使用(MemoryStream ms=新的MemoryStream(buf)) 因此,请计算图像大小的上限(以字节为单位),然后将MemoryStream与包

在这段代码中,我想使用linqtosql将图像保存在数据库中的picturebox1中。。。。。但在将图像转换为字节数组时遇到一些异常

异常为“System.NullReferenceException:对象引用未设置为对象的实例”


例如,创建Memorystream时,必须与字节[]关联

字节[]buf=新字节[4096]

那你就可以了 使用(MemoryStream ms=新的MemoryStream(buf))


因此,请计算图像大小的上限(以字节为单位),然后将MemoryStream与包含这么多字节的数组相关联。

我怀疑问题在于pictureBox.image在引用时为空。您正在设置pictureBox.ImageLocation,但未实际加载图像。
设置pictureBox.ImageLocation后立即添加对pictureBox.Load()的调用。

几乎所有的
NullReferenceException
情况都是相同的。请参阅“”以获取一些提示。是否在调试器中运行此操作?它将准确地告诉您哪个对象为空。可能是ImageToByteArray函数中抛出的错误不知道调试。。。。
private void button1_Click(object sender, EventArgs e)

{
    DataClasses1DataContext dc = new DataClasses1DataContext();
    try
    {
        string signname = textBox1.Text;
        string imageurl = textBox2.Text;
        pictureBox1.ImageLocation = imageurl;
     //   byte[] file_byte = new byte[1000];
       // Image newimage = new Image(pictureBox1.Image);
    ///Error comes here
     byte[] file_byte = ImageToByteArray(pictureBox1.Image);
        System.Data.Linq.Binary file_binary = new                                                           System.Data.Linq.Binary(file_byte);


        Sign_Table obj = new Sign_Table()
        {
            Sign_Name = signname,
            Sign_Image = file_binary,

        };
        dc.Sign_Tables.InsertOnSubmit(obj);

    }
    finally
    {
        dc.SubmitChanges();
    }

}
private byte[] ImageToByteArray(Image imageIn )
{
    using (MemoryStream ms = new MemoryStream())
    {

           // Error comes here
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        return ms.ToArray();
    }

}