2013-11-15 41 views
0

我有一個Windows窗體,其中包含兩個選項卡。第一個標籤用於保存圖像,第二個用於檢索。 也是我的源畫面,在我的倉項目地址是這樣的:保存和檢索數據庫中的相對地址在C#

C:\用戶\ BlackRose \文檔\的Visual Studio 2012 \項目\ RealState \ RealState \ BIN \調試\ HomePics

現在我不知道該怎麼樣,我可以保存圖片的地址,SQL Server和檢索它們甚至改變我的項目位置...

我已經嘗試這些代碼:

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 contains below Absolute Path:

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" />。或者,您也可以將相同的信息保存在數據庫中,並保存在獨立於圖像的表格中。

相關問題