問題描述:
掃瞄槍通過wifi連線於資料庫建立連線,關閉掃瞄槍電源使之處於待機狀態,等待一段時間後,開啟掃瞄槍於資料庫通訊,發生異常。
異常原因:
資料庫訪問使用的是ado.net ,而微軟的資料庫連線sqlconnection,使用的了pooling連線池技術。
使用 sqlconnection.status == open 判斷資料庫的連線狀態是不可以得到當前的實際狀態的,也就是說即使使用sqlconnection.open()開啟資料庫沒有異常,而且判斷status == open,也不能保證實際物理連線是open的。當程式使用到了,已經關閉的資料庫鏈結時,就會拋處異常。
解決方法:
每次獲取書庫庫鏈結的時候,即使open狀態,也要先訪問資料庫一次確保當前的鏈結狀態是最新的。
列入:
if (con !=null && con.state == system.data.connectionstate.open)
while(true)
sqldatareader dr = null;
trycatch (sqlexception e)
con.open();
資料庫連線
第一,設定允許遠端連線,允許sql server驗證 第二,建立登陸帳戶並授權 第三,註冊sql server資料庫 c windows microsoft.net framework v2.0.50727 下執行 aspnet regsql 指令 data server sqlexpress in...
資料庫連線
php host localhost host name db user root mysql username db password root mysql password db name table database name connect to server and select data...
資料庫連線
1.c 連線連線access 程式 using system.data using system.data.oledb string strconnection provider microsoft.jet.oledb.4.0 strconnection data source c begaspne...