// // 這個檔案是 學員出席 資料表的資料存取類別 檔案二 // 您可以修改這個檔案,加入您自訂的屬性與方法 // using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Data; using System.Data.Common; using WebLib; using System.Data.SqlClient; namespace Education { /// /// 學員出席 資料存取類別 /// public partial class DAC_學員出席 : WebLib.DAC { #region 自動產生的資料存取方法 /// /// InsertOne 之前會執行此方法 /// 在這裡可以做一些檢查或是自動編號等動作 /// 回傳 false 會打斷 InsertOne 的執行 /// protected virtual bool BeforeInsertOne(學員出席 value) { return true; } /// /// InsertOne 之後會執行此方法 /// protected virtual void AfterInsertOne(學員出席 value) { } /// /// InsertOne 發生錯誤時會執行此方法 /// ///錯誤是否已經處理妥當 protected virtual void OnInsertOneError(Exception error, out bool handled) { handled = false; } /// /// UpdateOne 之前會執行此方法 /// 在這裡可以做一些檢查 /// 回傳 false 會打斷 UpdateOne 的執行 /// protected virtual bool BeforeUpdateOne(學員出席 value) { return true; } /// /// UpdateOne 之後會執行此方法 /// protected virtual void AfterUpdateOne(學員出席 value) { } /// /// UpdateOne 發生錯誤時會執行此方法 /// ///錯誤是否已經處理妥當 protected virtual void OnUpdateOneError(Exception error, out bool handled) { handled = false; } /// /// DeleteOne 之前會執行此方法 /// 在這裡可以做一些檢查 /// 回傳 false 會打斷 DeleteOne 的執行 /// protected virtual bool BeforeDeleteOne(學員出席 value) { return true; } /// /// DeleteOne 之後會執行此方法 /// protected virtual void AfterDeleteOne(學員出席 value) { } /// /// DeleteOne 之前會執行此方法 /// 在這裡可以做一些檢查 /// 回傳 false 會打斷 DeleteOne 的執行 /// protected virtual bool BeforeDeleteOne(string 學員編號, int 訓練課程編號, DateTime 課程日期, int DB_APPNO) { return true; } /// /// DeleteOne 之後會執行此方法 /// protected virtual void AfterDeleteOne(string 學員編號, int 訓練課程編號, DateTime 課程日期, int DB_APPNO) { } /// /// DeleteOne 發生錯誤時會執行此方法 /// ///錯誤是否已經處理妥當 protected virtual void OnDeleteOneError(Exception error, out bool handled) { handled = false; } #endregion // 有另外加上去的屬性及方法,請加在這裡 [DataObjectMethod(DataObjectMethodType.Select)] public 學員出席List Select(string 學員編號, int 訓練課程編號) { 學員出席List result = new 學員出席List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where + " and 學員編號 = @學員編號 " + " and 訓練課程編號 = @訓練課程編號 " ; AddParam(cmdSelect, "學員編號", 學員編號); AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); Select(cmdSelect, ref list); return result; } public void Update(學員出席 value) { 學員出席List oldValue = SelectOne(value.學員編號, value.訓練課程編號, value.課程日期); if (oldValue.Count == 0) { InsertOne(value); } else { oldValue[0].出席狀況 = value.出席狀況; oldValue[0].請假事由 = value.請假事由; UpdateOne(oldValue[0]); } } public int Get出席人次(int 訓練課程編號) { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = @"select count(1) from 學員出席 where 訓練課程編號 = @訓練課程編號 and 出席狀況='Y'"; AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); int i; ExecuteScalar(cmdSelect, out i); return i; } public int Get參與人數(int 訓練課程編號) { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = @"select distinct count(學員編號) from 學員出席 where 訓練課程編號 = @訓練課程編號 and 出席狀況='Y'"; AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); int i; ExecuteScalar(cmdSelect, out i); return i; } [DataObjectMethod(DataObjectMethodType.Select)] public DataTable Select出席狀況(string 學員編號, int 訓練課程編號) { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select 課程日期, 出席狀況, 請假事由 " + _from + _where + " and 學員編號 = @學員編號 " + " and 訓練課程編號 = @訓練課程編號 " + " order by 課程日期 "; AddParam(cmdSelect, "學員編號", 學員編號); AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); return Select(cmdSelect); } } /// /// 學員出席 資料集合類別 /// public partial class 學員出席List : List<學員出席> { // 有另外加上去的屬性及方法,請加在這裡 } /// /// 學員出席 資料紀錄類別 /// public partial class 學員出席 { // 有另外加上去的屬性及方法,請加在這裡 } }