Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 14:14   #1
bob15
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 2
По умолчанию Сохранение изображения в базу данных

У меня есть программа, которая вначале загружает изображение в Image, затем сохраняет в базу данных. При попытке сохранить изображение, вылетает следующая ошибка "The process cannot access the file 'C:\бла бла бла\IMG196.jpg' because it is being used by another process." Подскажите пожалуйста, какой процесс мешает загрузке, и как его остановить, или какой то другой метод. Сам разобраться не смог.
Это кнопка загрузки изображения в Image:
Код:
private void button1_Click(object sender, RoutedEventArgs e)
       {
           BitmapImage bitmap = new BitmapImage();
           im = image1;
           im.Source = null;
           OpenFileDialog dialog = new OpenFileDialog();
           dialog.InitialDirectory = "C:\\бла бла бла\\Desktop";
           dialog.Filter = "Image files (*.jpg)|*.jpg|All Files (*.*)|*.*";
           dialog.RestoreDirectory = true;
           if (dialog.ShowDialog() == true)
           {
        
              selectedFileName = dialog.FileName;
                filename = selectedFileName;
               bitmap.BeginInit();
               bitmap.UriSource = new Uri(selectedFileName);
               bitmap.EndInit();              
               im.MaxWidth = 480;
               im.Height = bitmap.Height;
               im.Width = bitmap.Width;
                im.Source = bitmap;
                          
           }
       }
Здесь я заношу данные в базу. Ошибка указывает на первую строку:
Код:
FileStream fs = new FileStream(selectedFileName, FileMode.Open);
                    Byte[] Data = new Byte[fs.Length];
                    int read = (int)fs.Length;
                    fs.Read(Data, 0, read);
                    fs.Close();
                    
                    SqlCommand cmd3 = new SqlCommand();
                    conn.Open();
                    cmd3.Connection = conn;
                    cmd3.CommandType = CommandType.StoredProcedure;
                    cmd3.CommandText = "InsertPhotos";
                    SqlParameter p8 = cmd3.Parameters.Add("@pat_id", SqlDbType.SmallInt);
                    SqlParameter p9 = cmd3.Parameters.Add("@or_name", SqlDbType.VarChar);
                    SqlParameter p10 = cmd3.Parameters.Add("@photo", SqlDbType.VarBinary);
                    p8.Direction = ParameterDirection.Input;
                    p8.Value = id;
                    p9.Direction = ParameterDirection.Input;
                    p9.Value = comboBox2.Text+"_"+comboBox3.Text+"_"+comboBox4.Text;
                    p10.Direction = ParameterDirection.Input;
                    p10.Value = Data;
                    cmd3.ExecuteNonQuery();
                    conn.Close();
bob15 вне форума Ответить с цитированием
Старый 03.06.2012, 15:38   #2
bob15
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 2
По умолчанию

При загрузке, BitmapImage не закрывал файловый дескриптор. Проблема решилась изменением опций кэширования:
Код:
BitmapImage bmi = newBitmapImage();
 bmi.BeginInit();
  bmi.CacheOption=
            BitmapCacheOption.OnLoad;
  bmi.UriSource =uri;
 bmi.EndInit();
 image1.Source = bmi;
bob15 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одновременное сохранение в базу данных wm_leviathan Общие вопросы по программированию, компьютерный форум 9 23.03.2012 09:07
Загрузка изображения в IB базу данных kitty19 Помощь студентам 2 12.11.2010 23:29
Сохранение изменений в базу данных. Моряк007 БД в Delphi 8 27.06.2010 16:51
Сохранять изображения и файлы в базу данных Paradox hoba БД в Delphi 20 29.11.2009 00:55