[英]How can I use variable in connection string?
我在連接字符串變量方面遇到麻煩。 在我的app.config數據庫路徑中看起來不錯,但是在形式上,該連接字符串出現錯誤。 當我嘗試添加時:
_connectionString = "Data Source = (LocalDB)\\MSSQLLocalDB; " +
"AttachDbFilename = \"|DataDirectory|\\gazi_db.mdf\"; " +
"Integrated Security = True; Connect Timeout = 30";
數據庫無法正常工作; 它無法在退出時保存數據。 但這工作正常:
connectionString = "Data Source = (LocalDB)\\MSSQLLocalDB; " +
"AttachDbFilename = \"C:\\Users\\Can\\Desktop\\c_sharp_gazi_installer" +
"\\Gazi Installer\\gazi_installer\\gazi_db.mdf\"; " +
"Integrated Security = True; Connect Timeout = 30";
我怎樣才能解決這個問題?
編輯:我希望這會工作
string DataDirectory = "";
string folder = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().CodeBase);
AppDomain.CurrentDomain.SetData("DataDirectory", folder);
_connectionString = _connectionString = "Data Source = (LocalDB)\\MSSQLLocalDB; " +
"AttachDbFilename = \"" + DataDirectory + "\\gazi_db.mdf\"; " +
"Integrated Security = True; Connect Timeout = 30";
但是它仍然給我sqlclient sqlexception錯誤。
EDIT2:此錯誤表明連接已打開。 我不明白為什么這也不起作用:
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder["Data Source"] = "(LocalDB)\\MSSQLLocalDB";
builder["AttachDbFilename"] = @"C:\Users\Can\\Desktop\c_sharp_gazi_installer\Gazi Installer\gazi_installer\gazi_db.mdf";
builder["Integrated Security"] = true;
builder["Connect Timeout"] = 30;
請有人幫忙。 我要瘋了。
首先,可以使用@“ symbol”避免使用太多轉義字符。 然后,您在哪里定義“ DataDirectory”變量?
.NET具有連接字符串生成器類。 使用此功能,您可以將每個值(即數據源,集成安全性)分別設置為變量,然后使用.ConnectionString
屬性獲取連接字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.