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 に答える