public class DBOperate
{
static string server = Ini.ReadIniData("database", "server", null);
static string database = Ini.ReadIniData("database", "database", null);
static string str = "server=" + server + ";database=" + database + ";Uid=sa;Pwd=sml11023";
public SqlConnection conn = new SqlConnection(str);
}
當ini檔案改變時,server和database由于已初始化無法更改,請問如何修改才能使server和database能夠隨ini修改而改變?
uj5u.com熱心網友回復:
如果ini是程式修改的,就可以在修改后去修改資料庫鏈接。如果是在程式外部修改的ini,則需要監控ini檔案的變化來改變,具體可搜索關鍵字"FileSystemWatcher"。uj5u.com熱心網友回復:
去掉static,把ini檔案的內容讀到cache里來,加上快取依賴,類似這樣的:public static string ReadContentFromFileToCache(string FullFilePath,string CacheName)
{
Cache cache = HttpRuntime.Cache;
string strContent = string.Empty;
if (cache[CacheName] == null)
{
CacheDependency dp = new CacheDependency(FullFilePath);
lock (typeof(CacheManage))
{
strContent = File.ReadAllText(FullFilePath, Encoding.UTF8);
}
cache.Insert(CacheName, strContent, dp);
}
else
{
strContent = cache[CacheName].ToString();
}
return strContent;
}
uj5u.com熱心網友回復:
1.conn 原本就應該隨用隨銷 using(SqlConnection conn = new SqlConnection(str)) 這樣才能合理釋放連接池,以便多并發2.想監控檔案變化,請建立檔案依賴快取,這個你自己百度“C# system.runtime.Cache 檔案依賴快取”,我就不多說啥了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/89078.html
標籤:C#
上一篇:Asp.Net Abp Core 預留種子無法寫入資料庫
下一篇:latex
