最近在研究winform,因為這玩意不好用文字描寫,是以就沒寫部落格了。不過今天遇到需要大書特書的東西,趕緊記下來免得忘記了。
話說昨天我看了ado.net第一部分的視訊,主要講了SqlConnection,SqlCommand,SqlDataReader。是以我今天就寫了個小程式來測試。期間牽扯到寫入資料庫,根據SQL語句顯示資料等等,其中都要先判斷一個東西sql資料庫的連接配接狀态,當狀态為Open時候才能進行讀取和寫入資料,當狀态為Closed時候提示錯誤要求先打開資料庫。
開始我老老實實的在每個操作前寫if(conn.State.ToString()=="Closed"){},後來一想,為啥不寫一個方法來判斷目前連接配接狀态,如果是關閉就中斷操作提示錯誤?每個操作前調用一下就OK了,省時省力。
想法簡單,實作起來有難度,開始寫的是
private void connzt()
{
if(conn.State.ToString()=="Closed")
{
break;
}
}
運作報錯,提示沒有課中斷的循環。想了下break确實隻能中斷循環。
然後問了問别人,知道需要先定義異常,然後用throw抛出異常,之後在外部try中捕獲這個異常就可以了。嗯嗯,開幹。
首先定義異常類,從系統異常類中繼承方法再重寫
public class adoconexp : Exception
private string mymessage;
public adoconexp(string message)
: base()
mymessage = message;
//重寫Message方法
public override string Message
get
{
return mymessage;
}
然後定義判斷連接配接的方法調用自己定義的異常類并抛出
private void connzt()
throw new adoconexp("資料庫還在未連接配接!!!!");
最後在别的方法中調用它
private void button5_Click(object sender, EventArgs e)
try
connzt();//用判斷方法先判斷一次
MessageBox.Show("資料庫是打開的");
catch(adoconexp x)//使用自己定義的異常
MessageBox.Show(x.Message);
有朋友提示,可以用conn.State==ConnectionState.Closed來判斷是否關閉,這個比我那個友善。
大功告成,嘿嘿。