2013-11-15 2 views
0

У меня есть форма окна, содержащая две вкладки. первая вкладка предназначена для сохранения изображения, а вторая для извлечения. Кроме того, мои исходные фотографии в моем бен адрес проекта, как это:сохранять и извлекать изображения из базы данных по относительному адресу в C#

C: \ Users \ BlackRose \ Documents \ Visual Studio 2012 \ Projects \ RealState \ RealState \ Bin \ Debug \ HomePics

Теперь мне интересно, что как я могу сохранить адрес картинок на SQL сервере и восстановить их даже я могу изменить свое местоположение проекта ...

Я уже попробовать эти коды:

string path;  
public myForm() 
{ 
    path = Environment.CurrentDirectory.ToString() + "\\HomePics"; 
    openFileDialog1.InitialDirectory = path; 
} 

затем напишите код sql и C# в функции и сохраните imagePath и imageName, которые не проблема для их сохранения. , но я уверен, что я должен настроить путь, чтобы установить относительный путь, потому что строка пути, сохраненные в БДЕ, как это:

C:\Users\BlackRose\Documents\Visual Studio 2012\Projects\RealState\RealState\bin\Debug\HomePics\pic1.jpg 

с помощью этого метода, проблема возникает, когда я хочу переместить папку проекта в другом месте , и все адреса в db будут бесполезны.

Не могли бы вы рассказать мне какой-нибудь полезный метод, чтобы я мог получить его в любых условиях?

ответ

1

Вы можете использовать HomePics в качестве имени папки при сохранении Path в базу данных, как показано ниже:

path = "\\HomePics\\pic1.jpg"; 

при доступе к пути изображения из базы данных просто добавить код ниже:

String strRelativePath=getRelativePathfromDB();//gives you \Home\pic1.jpg 
String strAbsoluteFilePath= System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", "")+strRelativePath; 

Итак, наконец strAbsoluteFilePath содержит ниже Absolute Путь:

C:\Users\BlackRose\Documents\Visual Studio 2012\Projects\RealState\RealState\bin\Debug\HomePics\pic1.jpg 

вышеуказанный путь изменяет динамически в зависимости от location от того места, где выполняется ваш проект.

Я надеюсь, что это решит вашу проблему :)

+0

нормально Теперь я вижу ваши обновления пост спасибо я попробую сейчас –

+0

жаль, что я не получил вас, вы просите, чтобы знать шаги для вставки пути в базу данных? –

+0

отлично, пожалуйста, дайте мне знать, если вам нужно что-то еще. хороший день :) –

0

Что вы можете сделать, это:

  1. Сохранить относительный путь в базе данных, то есть путь относительно \HomePics (корневой папки) в вашем примере (при условии, что все файлы в этой папке и ее подпапках) ,

  2. В конфигурационном файле приложения добавьте параметр, чтобы указать, где находится корневая папка, например. в вашем <appSettings> у вас может быть запись <add key="ImagesRootFolder" value="C:\Images\HomePics" />. Кроме того, вы можете сохранить одну и ту же информацию в базе данных, а также в отдельной таблице для изображений.

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