2014-12-08 5 views
0

У меня есть приложение Windows C#, которое хранит данные Employee в базе данных MYSQL, включая их изображения. Но снимки не сохраняются при попытке вставить файл изображения в поле MYSQL Blob.Сохранение изображения в поле MYSQL Blob

Пожалуйста, помогите. Вот код.

 OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     openFileDialog1.InitialDirectory = "\\\\192.168.13.6\\ID Pictures"; 
     openFileDialog1.Filter = "jpg files (*.jpg)|*.txt|All files (*.*)|*.*"; 
     openFileDialog1.FilterIndex = 2; 
     openFileDialog1.RestoreDirectory = true; 
     int size = -1; 
     DialogResult result = openFileDialog1.ShowDialog(); 
     if (result == DialogResult.OK) // Test result. 
     { 
      file = openFileDialog1.FileName; 
      try 
      { 
       pnl_Picture.BackgroundImage = Image.FromFile(file); 
      } 
      catch (IOException) 
      { 
      } 
     } 

       conn.Open(); 
       FileStream fs; 
       BinaryReader br; 

       byte[] ImageData; 
       fs = new FileStream(file, FileMode.Open, FileAccess.Read); 
       br = new BinaryReader(fs); 
       ImageData = br.ReadBytes((int)fs.Length); 
       br.Close(); 
       fs.Close(); 

       OdbcCommand command = new OdbcCommand("INSERT INTO tbl_employee  (Picture) VALUES ('"+?Image2+"')", conn); 
       OdbcParameterCollection parameters = command.Parameters; 
       parameters.Add("?Image2", OdbcType.Image); 
       parameters["?Image2"].Value = ImageData; 
       command.ExecuteNonQuery(); 
       conn.Close(); 
+0

Не делайте этого. Вместо этого сохраните путь к изображению. – Rafael

+0

Вот что я сделал раньше. Путь файлов был сохранен в базе данных. Но у меня были проблемы с отображением изображений на моих хрустальных отчетах. Вот почему я решил сохранить само изображение, а не путь. – JasonX

+0

Отображение изображений в отчетах не должно быть проблемой, если вы ссылаетесь на правильный путь к файлу и получаете имя файла из db. – Rafael

ответ

0

Существует MySql provider для Visual Studio вместо ODBC. Вы можете добавить такие параметры:

parameters.Add(new MySqlParameter("Image2", ImageData)); 
+0

Я пробовал параметры.Add (новый OdbcParameter («Image2», ImageData)); Не возвратила ошибку, но не сохранила изображение в базе данных. – JasonX

+0

Итак, сначала попробуйте воспользоваться услугами MySql. –

Смежные вопросы