0

我试图在 LINQ 中进行简单的图像更新,但除了 IMAGE 之外的所有其他内容都在更新,并且图像保持不变......这是为什么呢?这是我的一些代码,谁能告诉我我做错了什么?

所以,我使用按钮来选择照片,(很简单)和字符串 path2 是我的路径

 using (OpenFileDialog dlg = new OpenFileDialog())
        {
            dlg.Title = "Open Image";
            dlg.Filter = "jpg files (*.jpg)|*.jpg";

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                path2 = dlg.FileName;
                //textBox1.Text = path;
                pictureBox2.ImageLocation = @path2;
                pictureBox2.Refresh();
            }
            dlg.Dispose();
        }

后来我改变了价值观

 selectedprodukt.Nazwa = modyfikuj_nazwa_produktu.Text;
                selectedprodukt.Cena = Convert.ToDecimal(modyfikuj_cena_produktu.Text);
                selectedprodukt.Opis = modyfikuj_opis_produktu.Text;
                selectedprodukt.Image = File.ReadAllBytes(path2);
                selectedprodukt.Producent = p.First();
                db.SaveChanges();

一切似乎都很好。首先我可以在图片框中看到旧图片,然后当我加载新图片时它也很好,但然后我点击保存,Nazwa、Cena、Opis、Producent 正在更新,但图片没有

我确实调试了我的项目,并且 path2 具有适当的值...

4

1 回答 1

2

Linq 使用它的特殊类型System.Data.Linq.Binary。所以你需要像这样修改你的更新查询:

System.Data.Linq.Binary file_binary = new System.Data.Linq.Binary(File.ReadAllBytes(path2));
selectedprodukt.Nazwa = modyfikuj_nazwa_produktu.Text;
selectedprodukt.Cena = Convert.ToDecimal(modyfikuj_cena_produktu.Text);
selectedprodukt.Opis = modyfikuj_opis_produktu.Text;
selectedprodukt.Image = file_binary;
selectedprodukt.Producent = p.First();
db.SaveChanges();
于 2013-11-04T02:32:55.563 回答