當前位置:
首頁 > 知識 > 如何刪除當前正在使用的SQLLite文件

如何刪除當前正在使用的SQLLite文件

從網上搜索一大堆,套路幾乎相同,但自己就是不行,怎麼也不行,為什麼不行呢?再次來看,恍然大悟,What?這麼簡單。

一開始代碼如下:


helper.GetConnectionString(schoolStr);//獲取當前連接字元串

using (ConnectionBase conn = ConnectionManager.Instance.Pop())

{

if (conn.State != ConnectionState.Open)

conn.Open();

try

{

helper.GetConnectionString(schoolStr);//獲取當前連接字元串

var curSchoolInfo = schoolDAL.SelectDetail(schoolStr);

if (curSchoolInfo != null)

schoolInfoList.Add(curSchoolInfo);

}

finally

{

conn.Close();

conn.Dispose();

GC.Collect();

GC.WaitForPendingFinalizers();

}

}

修改後代碼如下:

只要把 helper.GetConnectionString(schoolStr部分去掉,放到 helper.GetConnectionString(schoolStr) 部分就好了。

就是這麼簡單的問題,花了2個多小時折騰。

注意 GC.WaitForPendingFinalizers();部分代碼:

如果不加 GC.WaitForPendingFinalizers(); 代碼,表面看著已經釋放了,實則不然,為什麼close()和Dispose()之後任然不能釋放與db文件的連接呢?問度娘,好幾個答案是:Close() ,Dispose() ,但還是不可以,再次問度娘,給出了如下答案:

原因是sqllite在執行 SQLiteConnectionHandle.Dispose()操作的時候,其實並沒有真正的釋放連接,只有顯示調用CLR垃圾回收之後才能真正釋放連接。


中公優就業IT培訓,總有你想學的:http://xue.ujiuye.com

勤工儉學計劃,0元學IT!

http://www.ujiuye.com/zt/qgjx/?wt.bd=mmxtt

找工作太難?我們來幫你一舉拿下!

http://www.ujiuye.com/zt/jycj/?=mmxtt

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

四季之後,我能記住的,只有你的名字
心理測試|直覺哪根最辣?解析你潛藏的個性!
利用padding實現可控的分隔線
React渲染問題研究以及Immutable的應用
設計模式——淺談工廠模式

TAG:IT優就業 |

您可能感興趣

蘋果正在研發MicroLED屏幕,將儘快在iPhone上使用
Life姐教你使用LaTeX
如何在微服務或Tomcat中配置使用Listener
如何在 Ubuntu Linux 上使用 KVM 雲鏡像
Sentinel Wrap使用DNA來顯示食物是否已經變質
Cobalt Strike中DNS隱蔽隧道的利用,以及使用DLP進行檢測
PPT/Word/Excel 協同使用,相互轉換的方法其實非常簡單!
如何使用武器化的PDF文檔來竊取Windows憑據
使用SQL查詢ElasticSearch
CodeWarrior IDE使用Tips-使用burner將elf文件轉換生成HEX和BIN文件的方法和步驟詳解
有道雲筆記是如何使用 TensorFlow Lite 的?
如何讓您的舊iPhone儘可能長時間運行-使用SparkleComm的IOS用戶注意啦
如何使用 pdfgrep 從終端搜索 PDF 文件
SQLAlchemy 使用經驗
PHP 使用 Redis
不使用宏的情況 Multi-Stage Word 也可讓用戶中馬
除了Facebook和Intel,還有誰在數據中心使用OCP設備?
蘋果下一代iPhone產品iPhone Xs/Plus或使用LG高容量L形電池
如何使用TensorFlow中的Dataset API
如何在 Linux 上使用 snap 安裝 Spotify