2013-04-26 35 views
0

我面對一些問題:OleDbConnection的訪問數據庫的C#

我可以通過下面的代碼插入數據到我的數據庫:

oledbconnection = new oledbconnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
            Source=C:\User\yourdbfile.accdb"); 

數據成功插入到我的數據庫,

但如果我將代碼更改爲

oledbconnection = new oledbconnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
          Source=yourdbfile.accdb"); 

oledbconnection = new oledbconnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
         Source=|DataDirectory|\yourdbfile.accdb"); 

我無法將數據插入數據庫,並且沒有錯誤。


另一個問題,

如何發佈我用的數據庫文件系統?因爲當我在另一臺電腦上安裝此係統時,錯誤顯示C:\User\yourdbfile.accdb未找到。

+0

複製'yourdbfile.accdb'文件在您的項目通過解決方案資源管理器,並使用'| DataDirectory目錄| \ yourdbfile.accdb'。 – adatapost 2013-04-26 02:09:17

+0

我的「yourdbfile.accdb」已經存在於我的項目中。 @AVD – 2013-04-26 02:10:18

+0

我認爲yourdbfile.accdb應該在您的應用程序數據文件夾中! – Mullaly 2013-04-26 02:18:52

回答

0

U可以把DB源文件到應用程序文件夾,如:安裝盤文件夾:d:\ AA \ BB \, DB文件:d:\ AA \ BB \ DB文件\

+0

我的db源已經在C:\ User \ – 2013-04-26 02:33:10

+0

裏面,改變connectString:oledbconnection = new oledbconnection(@「Provider = Microsoft.Jet.OLEDB.4.0; Data Source =」+ Application .LocalUserAppDataPath);並在發佈應用程序時在安裝路徑中附加數據庫文件 – 2013-04-26 02:40:53

+0

oledbconnection = new oledbconnection(@「Provider = Microsoft.Jet.OLEDB.4.0; Data Source =」+ Application .LocalUserAppDataPath); 這樣只? – 2013-04-26 03:12:47

0

你可以檢查其Build屬性值上的Access文件的屬性。

OR

修改您的ProjectName.csproj是一個更好的方式來過這個問題。詳情如下:

<Target Name="AfterBuild"> 
    <Copy SourceFiles="$(OutputPath)yourdbfile.accdb" DestinationFolder="$(YourVariable)" ContinueOnError="true" /> 
</Target> 

查看此link供您參考。

檢查那些東西后,你現在可以使用:

var oledbconnection = new Oledbconnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourdbfile.accdb"); 
+0

這個編碼是需要把我的項目? – 2013-04-26 03:13:22

+0

'$(YourVariable)'只是Build Command的一個例子,您可以選擇要在哪裏構建它。例如用'$(TargetDir)'替換它。請參閱http:// msdn。microsoft.com/en-us/library/c02as0cs.aspx – lexeRoy 2013-04-26 03:17:41