2012-02-24 120 views
2

怎麼來我在我的數據庫上下文中插入的路徑不起作用?下面是我的路徑設置本地文件夾中的db mdf文件的路徑

private string dbPath = @"TEST.MDF" 
DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath); 

代碼但是當我運行一個查詢這給了我一個錯誤

嘗試附加文件TEST.MDF自動命名的數據庫失敗。一個名稱相同的數據庫存在,或者指定的文件不能被打開, 或它位於UNC共享上。

,這是我的文件夾怎麼看起來像這樣

enter image description here

MDF文件是在我的CS源代碼的同一位置,但事情是他們不能正確讀取路徑。

我的想法是,當我轉移到不同的PC時,我不必一次又一次地設置路徑。有沒有解決這個問題?

+1

它與您的'* .cs'文件位於同一位置 - 但是您的**可執行文件**在此目錄中不是**!當你建立和運行時,你的可執行文件很可能建在'bin \ debug'中 - 並且在那個目錄中,沒有'test.mdf'文件....... – 2012-02-24 05:31:39

+0

soo我必須使用? /../../Test.MDF? – user962206 2012-02-24 05:36:04

+0

否 - 您應該**將您的MDF文件附加到您計算機上的SQL Server實例上,併爲其指定一個**邏輯名稱**並使用該邏輯名稱連接到它,而不是使用.MDF文件及其位置..... – 2012-02-24 05:37:36

回答

1

什麼

private string dbPath = Application.StartupPath + "\\TEST.MDF"; 

但你Test.mdf是不是在正確的目錄。將其移入\bin\Debug以使此代碼可以正常工作。

+0

Application.StartUpPath是做什麼的? – user962206 2012-02-24 05:24:53

+1

它返回您的可執行文件的文件夾位置。所以說你的.EXE是在「C:\ Programming \ Projects \ C#\ testProject1 \ bin \ Debug」中。這是它返回的路徑。我們必須添加「\\ Test.mdf」的原因是將文件名添加到該路徑,以便完整路徑如下所示: C:\ Programming \ Projects \ C#\ testProject1 \ bin \ Debug \ Test。 mdf – Jason 2012-02-24 05:26:56

+0

謝謝:)乾杯。 – user962206 2012-02-24 05:32:53

0

更好的是在您的項目中添加.mdf文件。添加現有項目=>從文件夾中選擇.mdf文件。在項目中添加.mdf文件後,將在Web.config或App.Config文件中自動生成連接字符串,並且可以使用該連接字符串來啓動商店。現在,當您構建項目新的.mdf文件時,請將其複製到/ bin/dubug文件夾中,並且不需要編寫單行代碼來連接.mdf文件。