如何訪問數據庫?一個老掉牙的問題,方法多了去了,什麼直接使用ado.net、使用SQLHelp、使用微軟的企業庫、使用ORM、使用LinQ to SQL等等,還可以使用自己封裝的函數庫,這裡我就想說一下我的數據訪問函數庫的使用方法。
您可能會說了,這麼簡單的東東還用說嗎,重復制作輪子有意義嗎?這個嘛,個人有個人的看法了,我也不多說了,先看使用方法吧。
1、刪除一條數據,不使用事務
protected void Btn_Del_Click(object sender, EventArgs e)
{
//不用事務,直接刪除數據
string sql = "delete from News_NewsInfo where newsID = 18 ";
//執行SQL語句
dal.ExecuteNonQuery(sql);
判斷是否出現異常 和 是否真的刪除了一條數據#region 判斷是否出現異常 和 是否真的刪除了一條數據
//判斷是否出現異常
if (dal.ErrorMessage.Length > 0)
{
//出現了異常,客戶端彈出提示信息
Functions.PageRegisterAlert(Page,"刪除數據的時候發生異常,請與管理員聯系!");
return;
}
//判斷是否真的刪除了一條數據
//ExecuteRowCount 會返回操作影響的行數(不包括select語句)
if (dal.ExecuteRowCount != 1)
{
//沒有正確刪除一條數據,客戶端彈出提示信息
Functions.PageRegisterAlert(Page, "沒有正確刪除這條數據,請與管理員聯系!");
return;
}
#endregion
}
2、刪除多條數據,使用事務
protected void Btn_DelMore_Click(object sender, EventArgs e)
{
//使用事務,刪除多個表裡面的數據
//開啟一個事務
dal.TranManager.TranBegin();
string sql = "delete from News_NewsInfo where newsID = 13 ";
//執行SQL語句
dal.ExecuteNonQuery(sql);
判斷是否出現異常 和 是否真的刪除了一條數據#region 判斷是否出現異常 和 是否真的刪除了一條數據
//判斷是否出現異常
if (dal.ErrorMessage.Length > 0)
{
//出現了異常,客戶端彈出提示信息
//數據訪問函數庫內部會自動回滾事務,外部不用回滾!
Functions.PageRegisterAlert(Page, "刪除數據的時候發生異常,請與管理員聯系!");
return;
}
//判斷是否真的刪除了一條數據
//ExecuteRowCount 會返回操作影響的行數(不包括select語句)
if (dal.ExecuteRowCount != 1)
{
//沒有正確刪除一條數據,客戶端彈出提示信息
//沒有產生異常,內部並沒有自動回滾事務,所以請調用回滾的函數,回滾事務!
dal.TranManager.TranRollBack();
Functions.PageRegisterAlert(Page, "沒有正確刪除這條數據,請與管理員聯系!");
return;
}
#endregion
sql = "delete from News_NewsInfo where newsID = 14 ";
//執行SQL語句
dal.ExecuteNonQuery(sql);
判斷是否出現異常 和 是否真的刪除了一條數據#region 判斷是否出現異常 和 是否真的刪除了一條數據
//判斷是否出現異常
if (dal.ErrorMessage.Length > 0)
{
//出現了異常,客戶端彈出提示信息
//數據訪問函數庫內部會自動回滾事務,外部不用回滾!
Functions.PageRegisterAlert(Page, "刪除數據的時候發生異常,請與管理員聯系!");
return;
}
//判斷是否真的刪除了一條數據
//ExecuteRowCount 會返回操作影響的行數(不包括select語句)
if (dal.ExecuteRowCount != 1)
{
//沒有正確刪除一條數據,客戶端彈出提示信息
//沒有產生異常,內部並沒有自動回滾事務,所以請調用回滾的函數,回滾事務!
dal.TranManager.TranRollBack();
Functions.PageRegisterAlert(Page, "沒有正確刪除這條數據,請與管理員聯系!");
return;
}
#endregion
//可以繼續執行其他的操作,不僅僅是刪除語句,insert、Update語句都可以執行。
//執行之後都要進行判斷
//所有的操作都正確執行完畢之後,需要提交事務
dal.TranManager.TranCommit();
//注意,事務不支持嵌套!
}