簡體   English   中英

c#連接字符串和連接app.config

[英]c# connection string and concatenation app.config

我有以下連接字符串,我通過它連接到位於我的應用程序的根文件夾內的子文件夾中的Access數據庫(.mdb):

 OleDbConnection con = new OledbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory() + "Data\rctts.mdb;Jet OLEDB:Database Password=mypassword;")

我的問題是,如何將連接字符串放在app.config文件中? 一般來說,我使用:

 <connectionStrings>
    <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

我面臨的問題是,在我的連接字符串中,我正在進行一些連接,並且還使用System.AppDomain.CurrentDomain.BaseDirectory()來設置Data Source ...如何在app.config中執行相同的連接? 有可能這樣做嗎?

雖然配置API不提供為您操作連接字符串的工具,但您可以將連接字符串“template”放入配置中,並使用string.Format在代碼中執行其余操作:

配置:

<connectionStrings>
    <add name="Test" connectionString="Data Source={0}Data\rctts.mdb;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

C#代碼:

string conStr = string.Format(
    ConfigurationManager.ConnectionStrings["Test"].ConnectionString
,   System.AppDomain.CurrentDomain.BaseDirectory()
);

您可以嘗試以下方法:

connectionString="Data Source=|DataDirectory|\rctts.mdb;Initial Catalog=OmidPayamak;Integrated Security=True"

然后嘗試將DataDirectory的值設置如下:

var currentDomain = AppDomain.CurrentDomain;
var basePath = currentDomain.BaseDirectory;
currentDomain.SetData("DataDirectory", basePath+"\Data");

在您的應用程序的相應啟動文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM