我已經爲.NET Compact Framework和本地SQL Server編寫了自己的小型靜態DAL類,它只是做我需要的; GetTable(SQL,params),Exec(SQL,params),ExecScalar(SQL,Params)等等。我想用SQL來做所有事情,這就是我如何滾動,如果有更好的方法來處理C#中的SQL連接 - 除ORM-請告訴我。以下是我給我的下DAL類到SQLConnection對象的公共訪問:如何斷開連接時重新連接到SQLServer?
public static SqlConnection Conn()
{
if (ConnStr == "")
Defaults();
try
{
if (conn == null)
conn = new SqlConnection(ConnStr);
if (conn.State != ConnectionState.Open)
{
conn.Open();
Execute("SET DATEFORMAT DMY",null);
}
return conn;
}
catch
{
System.Windows.Forms.MessageBox.Show("Unable to connect to DB");
}
return null;
}
我編碼的申請在移動的Windows CE 5.0中使用。問題是,當用戶從無線網絡斷開然後重新連接時,if (conn.State != ConnectionState.Open)
行不會被執行,並且應用程序會提供一個通用數據庫異常,沒有別的。我該如何解決?
編輯:發現異常是由諸如GetTable()之類的函數引發的。我可以在每個函數中使用try-catch來處理它,但不幸的是,在Compact Framework中,每個sql錯誤都被命名爲「SqlException」。我如何區分連接問題和查詢問題?
不幸的是,.NET Compact Framework似乎不支持System.Net.NetworkInformation。 – 2009-06-17 15:06:25