Есть таблица в которой хранится картинка (SQL Server 2005) соответственно в поле Image. Когда я добавляю картинку методом:
| Код | DataTable dt = this.cinemaDataSet2.Фильм;//выбраем таблицу с БД DataRow row = dt.NewRow();//создаем новую строчку FileStream file = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read); int Length = (int)file.Length; byte[] mass = new byte[Length]; file.Read(mass, 0, Length); file.Close(); row["Рисунок"] = mass; dt.Rows.Add(row);//сохраняем новую строчку this.фильмTableAdapter.Update(cinemaDataSet2.Фильм);
|
то картинка в итогге нормально добавляется и соответственно нормально выводится в pictureBox.
Мне надо сделать возможность изменять картинку. Создал хранимую процедуру, которая заменяет картинку на новую:
| Код | ALTER PROCEDURE [dbo].[UpdateFilm] @image image, @kod int AS UPDATE Фильм SET Рисунок =@image, Where [Код фильма]=@kod
|
Вызываю её и кидаю туда новый рисунок. В базу рисунок добавляется, но pictureBox гонит что нету там никакого рисунка. Я гдето читал что Update для рисунка надо делать если поле NULL, делал и так: рисунок добавляется, но pictureBox'у на это пофиг. Что я неправильно делаю?
Чуть не забыл: апдейт картинки:
| Код | FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read); int Length = (int)file.Length; byte[] mass = new byte[Length]; file.Read(mass, 0, Length); file.Close(); SqlConnection con = new SqlConnection("Data Source=RETTO\\SQLEXPRESS;Initial Catalog=Cinema;Integrated Security=True");//подключаемя к базе SqlCommand comm = new SqlCommand("EXEC UpdateFilm " + "@image='" + mass + "', " + "@kod=" + treeView1.SelectedNode.Tag + "", con); con.Open();//коннектимся comm.ExecuteNonQuery(); comm.Connection.Close();
|
|