簡體   English   中英

自定義將數據源變量嵌入連接字符串中

[英]Custom embed the data source variable in the connection string

我如何自定義調用連接字符串的數據源,現有的連接字符串存儲在web.config文件中。 我正在使用Oledb連接到已上傳到服務器的Excel工作表。

我的連接字符串在web.config文件中。 之前,我對整個字符串進行了硬編碼,包括web.config文件中的數據源位置。

//this one works
<add name="testexcel1" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\usethis\WebApplication1\Uploaded Files\weekly output target.xlsx;Extended Properties='Excel 12.0 Xml;HDR=No;IMEX=1;MAXSCANROWS=0'"/>

//I would like to specify the data source parameter in my code behind file.
   <add name="testexcel" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=No'"/>

//this is what I am trying to do, but it just does not work, the string gets concatenated wrongly.
string fileLocation = Server.MapPath("~/Uploaded Files/" + filename);
builder.Provider = ConfigurationManager.ConnectionStrings["testexcel1"].ConnectionString;
        builder.DataSource = accept_filelocation;

//This is finally working
string connectionStringProvider =
ConfigurationManager.ConnectionStrings["testexcel1"].ConnectionString;

        string dataSource = accept_filelocation;

        string connectionString = String.Format(connectionStringProvider, dataSource);



        OleDbConnection oledbConn = new OleDbConnection(connectionString);

如果我對您的理解正確,則希望從配置中讀取連接字符串格式(包括{0})並將其應用於給定的數據源:

string connectionStringFormat = 
    ConfigurationManager.ConnectionStrings["testexcel1"].ConnectionString;

string dataSource = Server.MapPath("~/Uploaded Files/" + filename);

string connectionString = String.Format(connectionStringFormat, dataSource);
var builder = new OleDbConnectionStringBuilder(connectionString);

暫無
暫無

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

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