// // 這個檔案是 講師 資料表的資料存取類別 檔案一 // 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 // using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Linq; using System.Transactions; using WebLib; using System.Data.SqlClient; namespace Education { /// /// 講師 資料存取類別 /// [DataObject] public partial class DAC_講師 : WebLib.DAC { private const string _tableName = "[講師]"; private const string _allFields = "[編號], [姓名], [出生日期], [性別], [身份證字號], [電話], [手機], [電子郵件], [戶籍地址_郵編], [戶籍地址_縣市], [戶籍地址_鄉鎮市區], [戶籍地址_街道地址], [居住地址_郵編], [居住地址_縣市], [居住地址_鄉鎮市區], [居住地址_街道地址], [現職], [學歷], [授課區域], [授課專長領域], [授課經歷概述], [重要經歷], [重要研究與著作], [照片圖檔], [最高學歷], [最高學歷學校], [最高學歷科系], [合作狀態], [合作狀態說明], [合作方式], [證照資料], [異常標註], [講師來源], [推薦授課主題], [備註], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; private string _orderBy = "[編號]"; private string _select = "select " + _allFields; private string _insert = "[姓名], [出生日期], [性別], [身份證字號], [電話], [手機], [電子郵件], [戶籍地址_郵編], [戶籍地址_縣市], [戶籍地址_鄉鎮市區], [戶籍地址_街道地址], [居住地址_郵編], [居住地址_縣市], [居住地址_鄉鎮市區], [居住地址_街道地址], [現職], [學歷], [授課區域], [授課專長領域], [授課經歷概述], [重要經歷], [重要研究與著作], [照片圖檔], [最高學歷], [最高學歷學校], [最高學歷科系], [合作狀態], [合作狀態說明], [合作方式], [證照資料], [異常標註], [講師來源], [推薦授課主題], [備註], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; private string _insertBak = "[編號], [姓名], [出生日期], [性別], [身份證字號], [電話], [手機], [電子郵件], [戶籍地址_郵編], [戶籍地址_縣市], [戶籍地址_鄉鎮市區], [戶籍地址_街道地址], [居住地址_郵編], [居住地址_縣市], [居住地址_鄉鎮市區], [居住地址_街道地址], [現職], [學歷], [授課區域], [授課專長領域], [授課經歷概述], [重要經歷], [重要研究與著作], [照片圖檔], [最高學歷], [最高學歷學校], [最高學歷科系], [合作狀態], [合作狀態說明], [合作方式], [證照資料], [異常標註], [講師來源], [推薦授課主題], [備註], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR], [DB_TRMOD]"; private string _insertValue = "@姓名, @出生日期, @性別, @身份證字號, @電話, @手機, @電子郵件, @戶籍地址_郵編, @戶籍地址_縣市, @戶籍地址_鄉鎮市區, @戶籍地址_街道地址, @居住地址_郵編, @居住地址_縣市, @居住地址_鄉鎮市區, @居住地址_街道地址, @現職, @學歷, @授課區域, @授課專長領域, @授課經歷概述, @重要經歷, @重要研究與著作, @照片圖檔, @最高學歷, @最高學歷學校, @最高學歷科系, @合作狀態, @合作狀態說明, @合作方式, @證照資料, @異常標註, @講師來源, @推薦授課主題, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; private string _insertBakValue = "@編號, @姓名, @出生日期, @性別, @身份證字號, @電話, @手機, @電子郵件, @戶籍地址_郵編, @戶籍地址_縣市, @戶籍地址_鄉鎮市區, @戶籍地址_街道地址, @居住地址_郵編, @居住地址_縣市, @居住地址_鄉鎮市區, @居住地址_街道地址, @現職, @學歷, @授課區域, @授課專長領域, @授課經歷概述, @重要經歷, @重要研究與著作, @照片圖檔, @最高學歷, @最高學歷學校, @最高學歷科系, @合作狀態, @合作狀態說明, @合作方式, @證照資料, @異常標註, @講師來源, @推薦授課主題, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR, @DB_TRMOD"; private string _from = " from " + _tableName + " "; private string _where = " where 1=1 "; private string _order = " order by [編號] "; public DAC_講師() : base() { } public DAC_講師(DbConnection conn) : base(conn) { } [DataObjectMethod(DataObjectMethodType.Select)] public 講師List SelectAll(string orderBy = "") { 講師List result = new 講師List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where + (orderBy == null || orderBy.Length == 0 ? _order : " order by " + orderBy); Select(cmdSelect, ref list); return result; } public int SelectAllCount() { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1) " + _from; int i; ExecuteScalar(cmdSelect, out i); return i; } [DataObjectMethod(DataObjectMethodType.Select)] public 講師List SelectAllPage(int startRowIndex, int maximumRows, string orderBy = "") { 講師List result = new 講師List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) + "select " + _allFields + ", row_number() over (order by " + (orderBy == null || orderBy.Length == 0 ? _orderBy : orderBy) + ") as rowid " + _from + _where + ") as TMP1 where rowid > @startRowIndex "; AddParam(cmdSelect, "startRowIndex", startRowIndex); Select(cmdSelect, ref list); return result; } [DataObjectMethod(DataObjectMethodType.Select)] public 講師List SelectOne(int 編號) { 講師List result = new 講師List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where + " and 編號 = @編號 " ; AddParam(cmdSelect, "編號", 編號); Select(cmdSelect, ref list); return result; } /// /// 給查詢畫面用的增加 Where 條件的方法 /// private void AddWhere(DbCommand cmdSelect, ref bool noInput, string 姓名, string 電話, string 手機) { if (姓名 != null && 姓名.Length > 0) { noInput = false; cmdSelect.CommandText += " and 姓名 like @姓名 "; AddParam(cmdSelect, "姓名", "%" + 姓名 + "%"); } if (電話 != null && 電話.Length > 0) { noInput = false; cmdSelect.CommandText += " and 電話 like @電話 "; AddParam(cmdSelect, "電話", "%" + 電話 + "%"); } if (手機 != null && 手機.Length > 0) { noInput = false; cmdSelect.CommandText += " and 手機 like @手機 "; AddParam(cmdSelect, "手機", "%" + 手機 + "%"); } } /// /// 給查詢畫面用的 Select 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public 講師List Select(bool noInputReturnAll, string 姓名, string 電話, string 手機, string orderBy = "") { 講師List result = new 講師List(); bool noInput = true; IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where; AddWhere(cmdSelect, ref noInput, 姓名, 電話, 手機); cmdSelect.CommandText += (orderBy == null || orderBy.Length == 0 ? _order : " order by " + orderBy); if (!noInputReturnAll && noInput) return result; Select(cmdSelect, ref list); return result; } /// /// 給查詢畫面用的 SelectCount 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public int SelectCount(bool noInputReturnAll, string 姓名, string 電話, string 手機, string orderBy = "") { bool noInput = true; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1) " + _from + _where; AddWhere(cmdSelect, ref noInput, 姓名, 電話, 手機); if (!noInputReturnAll && noInput) return 0; int i; ExecuteScalar(cmdSelect, out i); return i; } /// /// 給查詢畫面用的 SelectPage 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public 講師List SelectPage(bool noInputReturnAll, int startRowIndex, int maximumRows, string 姓名, string 電話, string 手機, string orderBy = "") { 講師List result = new 講師List(); bool noInput = true; IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) + "select " + _allFields + ", row_number() over (order by " + (orderBy == null || orderBy.Length == 0 ? _orderBy : orderBy) + ") as rowid " + _from + _where; AddWhere(cmdSelect, ref noInput, 姓名, 電話, 手機); cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex "; AddParam(cmdSelect, "startRowIndex", startRowIndex); if (!noInputReturnAll && noInput) return result; Select(cmdSelect, ref list); return result; } [DataObjectMethod(DataObjectMethodType.Insert)] public 講師 InsertOne(講師 value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeInsertOne(value)) return value; DbCommand cmdInsert = NewCommand(); cmdInsert.CommandText = "insert into [講師]" + " (" + _insert + ")" + "values " + " (" + _insertValue + ");" + "select @@identity" ; AddParam(cmdInsert, "姓名", value.姓名); AddParam(cmdInsert, "出生日期", value.出生日期); AddParam(cmdInsert, "性別", value.性別); AddParam(cmdInsert, "身份證字號", value.身份證字號); AddParam(cmdInsert, "電話", value.電話); AddParam(cmdInsert, "手機", value.手機); AddParam(cmdInsert, "電子郵件", value.電子郵件); AddParam(cmdInsert, "戶籍地址_郵編", value.戶籍地址_郵編); AddParam(cmdInsert, "戶籍地址_縣市", value.戶籍地址_縣市); AddParam(cmdInsert, "戶籍地址_鄉鎮市區", value.戶籍地址_鄉鎮市區); AddParam(cmdInsert, "戶籍地址_街道地址", value.戶籍地址_街道地址); AddParam(cmdInsert, "居住地址_郵編", value.居住地址_郵編); AddParam(cmdInsert, "居住地址_縣市", value.居住地址_縣市); AddParam(cmdInsert, "居住地址_鄉鎮市區", value.居住地址_鄉鎮市區); AddParam(cmdInsert, "居住地址_街道地址", value.居住地址_街道地址); AddParam(cmdInsert, "現職", value.現職); AddParam(cmdInsert, "學歷", value.學歷); AddParam(cmdInsert, "最高學歷", value.最高學歷); AddParam(cmdInsert, "最高學歷學校", value.最高學歷學校); AddParam(cmdInsert, "最高學歷科系", value.最高學歷科系); AddParam(cmdInsert, "授課區域", value.授課區域); AddParam(cmdInsert, "授課專長領域", value.授課專長領域); AddParam(cmdInsert, "授課經歷概述", value.授課經歷概述); AddParam(cmdInsert, "重要經歷", value.重要經歷); AddParam(cmdInsert, "重要研究與著作", value.重要研究與著作); AddParam(cmdInsert, "照片圖檔", value.照片圖檔); AddParam(cmdInsert, "合作狀態", value.合作狀態); AddParam(cmdInsert, "合作狀態說明", value.合作狀態說明); AddParam(cmdInsert, "合作方式", value.合作方式); AddParam(cmdInsert, "證照資料", value.證照資料); AddParam(cmdInsert, "異常標註", value.異常標註); AddParam(cmdInsert, "講師來源", value.講師來源); AddParam(cmdInsert, "推薦授課主題", value.推薦授課主題); AddParam(cmdInsert, "備註", value.備註); AddParam(cmdInsert, "DB_APPNO", 1); AddParam(cmdInsert, "DB_CRDAT", DateTime.Now); AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); int newId; ExecuteScalar(cmdInsert, out newId); value.編號 = newId; AfterInsertOne(value); ts.Complete(); } catch (Exception error) { bool handled; OnInsertOneError(error, out handled); if (!handled) throw error; } return value; } } [DataObjectMethod(DataObjectMethodType.Update)] public 講師 UpdateOne(講師 value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeUpdateOne(value)) return value; 講師List oldValues = SelectOne(value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在更新 \"講師\" 資料表時發生並行例外:找不到要更新的資料列"); } DbCommand cmdUpdate = NewCommand(); cmdUpdate.CommandText = @"update [講師] set [姓名] = @姓名 , [出生日期] = @出生日期 , [性別] = @性別 , [身份證字號] = @身份證字號 , [電話] = @電話 , [手機] = @手機 , [電子郵件] = @電子郵件 , [戶籍地址_郵編] = @戶籍地址_郵編 , [戶籍地址_縣市] = @戶籍地址_縣市 , [戶籍地址_鄉鎮市區] = @戶籍地址_鄉鎮市區 , [戶籍地址_街道地址] = @戶籍地址_街道地址 , [居住地址_郵編] = @居住地址_郵編 , [居住地址_縣市] = @居住地址_縣市 , [居住地址_鄉鎮市區] = @居住地址_鄉鎮市區 , [居住地址_街道地址] = @居住地址_街道地址 , [現職] = @現職 , [最高學歷] = @最高學歷 , [最高學歷學校] = @最高學歷學校 , [最高學歷科系] = @最高學歷科系 , [授課區域] = @授課區域 , [授課專長領域] = @授課專長領域 , [授課經歷概述] = @授課經歷概述 , [重要經歷] = @重要經歷 , [重要研究與著作] = @重要研究與著作 , [照片圖檔] = @照片圖檔 , [合作狀態] = @合作狀態 , [合作狀態說明] = @合作狀態說明 , [合作方式] = @合作方式 , [證照資料] = @證照資料 , [異常標註] = @異常標註 , [講師來源] = @講師來源 , [推薦授課主題] = @推薦授課主題 , [備註] = @備註 , DB_APPNO = DB_APPNO + 1, DB_TRDAT = @DB_TRDAT, DB_TRUSR = @DB_TRUSR where 1=1 and [編號] = @original_編號 and DB_APPNO = @original_DB_APPNO "; AddParam(cmdUpdate, "姓名", value.姓名); AddParam(cmdUpdate, "出生日期", value.出生日期); AddParam(cmdUpdate, "性別", value.性別); AddParam(cmdUpdate, "身份證字號", value.身份證字號); AddParam(cmdUpdate, "電話", value.電話); AddParam(cmdUpdate, "手機", value.手機); AddParam(cmdUpdate, "電子郵件", value.電子郵件); AddParam(cmdUpdate, "戶籍地址_郵編", value.戶籍地址_郵編); AddParam(cmdUpdate, "戶籍地址_縣市", value.戶籍地址_縣市); AddParam(cmdUpdate, "戶籍地址_鄉鎮市區", value.戶籍地址_鄉鎮市區); AddParam(cmdUpdate, "戶籍地址_街道地址", value.戶籍地址_街道地址); AddParam(cmdUpdate, "居住地址_郵編", value.居住地址_郵編); AddParam(cmdUpdate, "居住地址_縣市", value.居住地址_縣市); AddParam(cmdUpdate, "居住地址_鄉鎮市區", value.居住地址_鄉鎮市區); AddParam(cmdUpdate, "居住地址_街道地址", value.居住地址_街道地址); AddParam(cmdUpdate, "現職", value.現職); AddParam(cmdUpdate, "最高學歷", value.最高學歷); AddParam(cmdUpdate, "最高學歷學校", value.最高學歷學校); AddParam(cmdUpdate, "最高學歷科系", value.最高學歷科系); AddParam(cmdUpdate, "授課區域", value.授課區域); AddParam(cmdUpdate, "授課專長領域", value.授課專長領域); AddParam(cmdUpdate, "授課經歷概述", value.授課經歷概述); AddParam(cmdUpdate, "重要經歷", value.重要經歷); AddParam(cmdUpdate, "重要研究與著作", value.重要研究與著作); AddParam(cmdUpdate, "照片圖檔", value.照片圖檔); AddParam(cmdUpdate, "合作狀態", value.合作狀態); AddParam(cmdUpdate, "合作狀態說明", value.合作狀態說明); AddParam(cmdUpdate, "合作方式", value.合作方式); AddParam(cmdUpdate, "證照資料", value.證照資料); AddParam(cmdUpdate, "異常標註", value.異常標註); AddParam(cmdUpdate, "講師來源", value.講師來源); AddParam(cmdUpdate, "推薦授課主題", value.推薦授課主題); AddParam(cmdUpdate, "備註", value.備註); AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now); AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); AddParam(cmdUpdate, "original_編號", value.編號); AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); ExecuteNonQuery(cmdUpdate); AfterUpdateOne(value); ts.Complete(); return value; } catch (Exception error) { bool handled; OnUpdateOneError(error, out handled); if (!handled) throw error; return value; } } } [DataObjectMethod(DataObjectMethodType.Update)] public 講師 UpdateOne(講師 value, 講師 original_value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeUpdateOne(value, original_value)) return value; 講師List oldValues = SelectOne(original_value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在更新 \"講師\" 資料表時發生並行例外:找不到要更新的資料列"); } DbCommand cmdUpdate = NewCommand(); cmdUpdate.CommandText = @"update [講師] set [姓名] = @姓名 , [出生日期] = @出生日期 , [性別] = @性別 , [身份證字號] = @身份證字號 , [電話] = @電話 , [手機] = @手機 , [電子郵件] = @電子郵件 , [戶籍地址_郵編] = @戶籍地址_郵編 , [戶籍地址_縣市] = @戶籍地址_縣市 , [戶籍地址_鄉鎮市區] = @戶籍地址_鄉鎮市區 , [戶籍地址_街道地址] = @戶籍地址_街道地址 , [居住地址_郵編] = @居住地址_郵編 , [居住地址_縣市] = @居住地址_縣市 , [居住地址_鄉鎮市區] = @居住地址_鄉鎮市區 , [居住地址_街道地址] = @居住地址_街道地址 , [現職] = @現職 , [最高學歷] = @最高學歷 , [最高學歷學校] = @最高學歷學校 , [最高學歷科系] = @最高學歷科系 , [授課區域] = @授課區域 , [授課專長領域] = @授課專長領域 , [授課經歷概述] = @授課經歷概述 , [重要經歷] = @重要經歷 , [重要研究與著作] = @重要研究與著作 , [照片圖檔] = @照片圖檔 , [合作狀態] = @合作狀態 , [合作狀態說明] = @合作狀態說明 , [合作方式] = @合作方式 , [證照資料] = @證照資料 , [異常標註] = @異常標註 , [講師來源] = @講師來源 , [推薦授課主題] = @推薦授課主題 , [備註] = @備註 , DB_APPNO = DB_APPNO + 1, DB_TRDAT = @DB_TRDAT, DB_TRUSR = @DB_TRUSR where 1=1 and [編號] = @original_編號 and DB_APPNO = @original_DB_APPNO "; AddParam(cmdUpdate, "姓名", value.姓名); AddParam(cmdUpdate, "出生日期", value.出生日期); AddParam(cmdUpdate, "性別", value.性別); AddParam(cmdUpdate, "身份證字號", value.身份證字號); AddParam(cmdUpdate, "電話", value.電話); AddParam(cmdUpdate, "手機", value.手機); AddParam(cmdUpdate, "電子郵件", value.電子郵件); AddParam(cmdUpdate, "戶籍地址_郵編", value.戶籍地址_郵編); AddParam(cmdUpdate, "戶籍地址_縣市", value.戶籍地址_縣市); AddParam(cmdUpdate, "戶籍地址_鄉鎮市區", value.戶籍地址_鄉鎮市區); AddParam(cmdUpdate, "戶籍地址_街道地址", value.戶籍地址_街道地址); AddParam(cmdUpdate, "居住地址_郵編", value.居住地址_郵編); AddParam(cmdUpdate, "居住地址_縣市", value.居住地址_縣市); AddParam(cmdUpdate, "居住地址_鄉鎮市區", value.居住地址_鄉鎮市區); AddParam(cmdUpdate, "居住地址_街道地址", value.居住地址_街道地址); AddParam(cmdUpdate, "現職", value.現職); AddParam(cmdUpdate, "最高學歷", value.最高學歷); AddParam(cmdUpdate, "最高學歷學校", value.最高學歷學校); AddParam(cmdUpdate, "最高學歷科系", value.最高學歷科系); AddParam(cmdUpdate, "授課區域", value.授課區域); AddParam(cmdUpdate, "授課專長領域", value.授課專長領域); AddParam(cmdUpdate, "授課經歷概述", value.授課經歷概述); AddParam(cmdUpdate, "重要經歷", value.重要經歷); AddParam(cmdUpdate, "重要研究與著作", value.重要研究與著作); AddParam(cmdUpdate, "照片圖檔", value.照片圖檔); AddParam(cmdUpdate, "合作狀態", value.合作狀態); AddParam(cmdUpdate, "合作狀態說明", value.合作狀態說明); AddParam(cmdUpdate, "合作方式", value.合作方式); AddParam(cmdUpdate, "證照資料", value.證照資料); AddParam(cmdUpdate, "異常標註", value.異常標註); AddParam(cmdUpdate, "講師來源", value.講師來源); AddParam(cmdUpdate, "推薦授課主題", value.推薦授課主題); AddParam(cmdUpdate, "備註", value.備註); AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now); AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); AddParam(cmdUpdate, "original_編號", original_value.編號); AddParam(cmdUpdate, "original_DB_APPNO", original_value.DB_APPNO); ExecuteNonQuery(cmdUpdate); AfterUpdateOne(value, original_value); ts.Complete(); return value; } catch (Exception error) { bool handled; OnUpdateOneError(error, out handled); if (!handled) throw error; return value; } } } [DataObjectMethod(DataObjectMethodType.Delete)] public int DeleteOne(int 編號, int DB_APPNO) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeDeleteOne(編號, DB_APPNO)) return -1; 講師List oldValues = SelectOne(編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) { throw new DBConcurrencyException("在刪除 \"講師\" 資料表時發生並行例外:找不到要刪除的資料列"); } DbCommand cmdDelete = NewCommand(); cmdDelete.CommandText = @"delete from [講師] where 1=1 and 編號 = @編號 and DB_APPNO = @DB_APPNO "; AddParam(cmdDelete, "編號", 編號); AddParam(cmdDelete, "DB_APPNO", DB_APPNO); int rowsAffected = ExecuteNonQuery(cmdDelete); AfterDeleteOne(編號, DB_APPNO); ts.Complete(); return rowsAffected; } catch (Exception error) { bool handled; OnDeleteOneError(error, out handled); if (!handled) throw error; return -1; } } } [DataObjectMethod(DataObjectMethodType.Delete)] public int DeleteOne(講師 value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeDeleteOne(value)) return -1; 講師List oldValues = SelectOne(value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在刪除 \"講師\" 資料表時發生並行例外:找不到要刪除的資料列"); } DbCommand cmdDelete = NewCommand(); cmdDelete.CommandText = @"delete from [講師] where 1=1 and 編號 = @編號 and DB_APPNO = @DB_APPNO "; AddParam(cmdDelete, "編號", value.編號); AddParam(cmdDelete, "DB_APPNO", value.DB_APPNO); int rowsAffected = ExecuteNonQuery(cmdDelete); AfterDeleteOne(value); ts.Complete(); return rowsAffected; } catch (Exception error) { bool handled; OnDeleteOneError(error, out handled); if (!handled) throw error; return -1; } } } public bool IsDuplicate(int 編號) { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1)" + _from + _where + " and 編號 = @編號 " ; AddParam(cmdSelect, "編號", 編號); int count; ExecuteScalar(cmdSelect, out count); return count > 0; } } /// ///講師 資料集合類別 /// [Serializable] public partial class 講師List : List<講師>, IDataList { public void Fill(DbDataReader reader) { DAC.FillData<講師>(reader, this); } //public void Fill(DbDataReader reader) //{ // while (reader.Read()) // { // 講師 newItem = new 講師(); // newItem.編號 = DAC.GetInt32(reader[0]); // newItem.姓名 = DAC.GetString(reader[1]); // newItem.出生日期 = DAC.GetDateTime(reader[2]); // newItem.性別 = DAC.GetString(reader[3]); // newItem.身份證字號 = DAC.GetString(reader[4]); // newItem.電話 = DAC.GetString(reader[5]); // newItem.手機 = DAC.GetString(reader[6]); // newItem.電子郵件 = DAC.GetString(reader[7]); // newItem.戶籍地址_郵編 = DAC.GetString(reader[8]); // newItem.戶籍地址_縣市 = DAC.GetString(reader[9]); // newItem.戶籍地址_鄉鎮市區 = DAC.GetString(reader[10]); // newItem.戶籍地址_街道地址 = DAC.GetString(reader[11]); // newItem.居住地址_郵編 = DAC.GetString(reader[12]); // newItem.居住地址_縣市 = DAC.GetString(reader[13]); // newItem.居住地址_鄉鎮市區 = DAC.GetString(reader[14]); // newItem.居住地址_街道地址 = DAC.GetString(reader[15]); // newItem.現職 = DAC.GetString(reader[16]); // newItem.最高學歷 = DAC.GetString(reader[17]); // newItem.最高學歷學校 = DAC.GetString(reader[18]); // newItem.最高學歷科系 = DAC.GetString(reader[19]); // newItem.授課區域 = DAC.GetString(reader[20]); // newItem.授課專長領域 = DAC.GetString(reader[21]); // newItem.授課經歷概述 = DAC.GetString(reader[22]); // newItem.重要經歷 = DAC.GetString(reader[23]); // newItem.重要研究與著作 = DAC.GetString(reader[24]); // newItem.照片圖檔 = DAC.GetString(reader[25]); // newItem.合作狀態 = DAC.GetString(reader[26]); // newItem.合作狀態說明 = DAC.GetString(reader[27]); // newItem.合作方式 = DAC.GetString(reader[28]); // newItem.證照資料 = DAC.GetString(reader[29]); // newItem.異常標註 = DAC.GetString(reader[30]); // newItem.講師來源 = DAC.GetString(reader[31]); // newItem.推薦授課主題 = DAC.GetString(reader[32]); // newItem.DB_APPNO = DAC.GetInt32(reader[33]); // newItem.DB_CRDAT = DAC.GetDateTime(reader[34]); // newItem.DB_CRUSR = DAC.GetString(reader[35]); // newItem.DB_TRDAT = DAC.GetDateTime(reader[36]); // newItem.DB_TRUSR = DAC.GetString(reader[37]); // //newItem.編號 = DAC.GetInt32(reader[0]); // //newItem.姓名 = DAC.GetString(reader[1]); // //newItem.出生日期 = DAC.GetDateTime(reader[2]); // //newItem.性別 = DAC.GetString(reader[3]); // //newItem.身份證字號 = DAC.GetString(reader[4]); // //newItem.電話 = DAC.GetString(reader[5]); // //newItem.手機 = DAC.GetString(reader[6]); // //newItem.電子郵件 = DAC.GetString(reader[7]); // //newItem.戶籍地址_郵編 = DAC.GetString(reader[8]); // //newItem.戶籍地址_縣市 = DAC.GetString(reader[9]); // //newItem.戶籍地址_鄉鎮市區 = DAC.GetString(reader[10]); // //newItem.戶籍地址_街道地址 = DAC.GetString(reader[11]); // //newItem.居住地址_郵編 = DAC.GetString(reader[12]); // //newItem.居住地址_縣市 = DAC.GetString(reader[13]); // //newItem.居住地址_鄉鎮市區 = DAC.GetString(reader[14]); // //newItem.居住地址_街道地址 = DAC.GetString(reader[15]); // //newItem.現職 = DAC.GetString(reader[16]); // //newItem.最高學歷 = DAC.GetString(reader[17]); // //newItem.最高學歷學校 = DAC.GetString(reader[18]); // //newItem.最高學歷科系 = DAC.GetString(reader[19]); // //newItem.授課區域 = DAC.GetString(reader[20]); // //newItem.授課專長領域 = DAC.GetString(reader[21]); // //newItem.授課經歷概述 = DAC.GetString(reader[22]); // //newItem.重要經歷 = DAC.GetString(reader[23]); // //newItem.重要研究與著作 = DAC.GetString(reader[24]); // //newItem.照片圖檔 = DAC.GetString(reader[25]); // //newItem.DB_APPNO = DAC.GetInt32(reader[26]); // //newItem.DB_CRDAT = DAC.GetDateTime(reader[27]); // //newItem.DB_CRUSR = DAC.GetString(reader[28]); // //newItem.DB_TRDAT = DAC.GetDateTime(reader[29]); // //newItem.DB_TRUSR = DAC.GetString(reader[30]); // Add(newItem); // } //} } /// /// 講師 資料紀錄類別 /// [Serializable] public partial class 講師 : DataItemBase { private int _編號; private string _姓名; private DateTime? _出生日期; private string _性別; private string _身份證字號; private string _電話; private string _手機; private string _電子郵件; private string _戶籍地址_郵編; private string _戶籍地址_縣市; private string _戶籍地址_鄉鎮市區; private string _戶籍地址_街道地址; private string _居住地址_郵編; private string _居住地址_縣市; private string _居住地址_鄉鎮市區; private string _居住地址_街道地址; private string _現職; private string _最高學歷; private string _最高學歷學校; private string _最高學歷科系; private string _授課區域; private string _授課專長領域; private string _授課經歷概述; private string _重要經歷; private string _重要研究與著作; private string _照片圖檔; private string _合作狀態; private string _合作狀態說明; private string _合作方式; private string _證照資料; private string _異常標註; private string _講師來源; private string _推薦授課主題; private string _備註; #region 資料欄位 /// /// 編號 /// [DataObjectField(true, false, false)] public int 編號 { get { return _編號; } set { if (value != _編號) { _編號 = value; OnPropertyChanged("編號"); } } } /// /// 姓名 /// [DataObjectField(false, false, true, 30)] public string 姓名 { get { return _姓名; } set { if (value != _姓名) { _姓名 = value; OnPropertyChanged("姓名"); } } } /// /// 出生日期 /// [DataObjectField(false, false, true)] public DateTime? 出生日期 { get { return _出生日期; } set { if (value != _出生日期) { _出生日期 = value; OnPropertyChanged("出生日期"); } } } /// /// 性別,M=男、F=女 /// [DataObjectField(false, false, true, 1)] public string 性別 { get { return _性別; } set { if (value != _性別) { _性別 = value; OnPropertyChanged("性別"); } } } /// /// 身份證字號 /// [DataObjectField(false, false, true, 12)] public string 身份證字號 { get { return _身份證字號; } set { if (value != _身份證字號) { _身份證字號 = value; OnPropertyChanged("身份證字號"); } } } /// /// 電話 /// [DataObjectField(false, false, true, 50)] public string 電話 { get { return _電話; } set { if (value != _電話) { _電話 = value; OnPropertyChanged("電話"); } } } /// /// 手機 /// [DataObjectField(false, false, true, 50)] public string 手機 { get { return _手機; } set { if (value != _手機) { _手機 = value; OnPropertyChanged("手機"); } } } /// /// 電子郵件 /// [DataObjectField(false, false, true, 100)] public string 電子郵件 { get { return _電子郵件; } set { if (value != _電子郵件) { _電子郵件 = value; OnPropertyChanged("電子郵件"); } } } /// /// 戶籍地址_郵編 /// [DataObjectField(false, false, true, 10)] public string 戶籍地址_郵編 { get { return _戶籍地址_郵編; } set { if (value != _戶籍地址_郵編) { _戶籍地址_郵編 = value; OnPropertyChanged("戶籍地址_郵編"); } } } /// /// 戶籍地址_縣市 /// [DataObjectField(false, false, true, 10)] public string 戶籍地址_縣市 { get { return _戶籍地址_縣市; } set { if (value != _戶籍地址_縣市) { _戶籍地址_縣市 = value; OnPropertyChanged("戶籍地址_縣市"); } } } /// /// 戶籍地址_鄉鎮市區 /// [DataObjectField(false, false, true, 10)] public string 戶籍地址_鄉鎮市區 { get { return _戶籍地址_鄉鎮市區; } set { if (value != _戶籍地址_鄉鎮市區) { _戶籍地址_鄉鎮市區 = value; OnPropertyChanged("戶籍地址_鄉鎮市區"); } } } /// /// 戶籍地址_街道地址 /// [DataObjectField(false, false, true, 50)] public string 戶籍地址_街道地址 { get { return _戶籍地址_街道地址; } set { if (value != _戶籍地址_街道地址) { _戶籍地址_街道地址 = value; OnPropertyChanged("戶籍地址_街道地址"); } } } /// /// 居住地址_郵編 /// [DataObjectField(false, false, true, 10)] public string 居住地址_郵編 { get { return _居住地址_郵編; } set { if (value != _居住地址_郵編) { _居住地址_郵編 = value; OnPropertyChanged("居住地址_郵編"); } } } /// /// 居住地址_縣市 /// [DataObjectField(false, false, true, 10)] public string 居住地址_縣市 { get { return _居住地址_縣市; } set { if (value != _居住地址_縣市) { _居住地址_縣市 = value; OnPropertyChanged("居住地址_縣市"); } } } /// /// 居住地址_鄉鎮市區 /// [DataObjectField(false, false, true, 10)] public string 居住地址_鄉鎮市區 { get { return _居住地址_鄉鎮市區; } set { if (value != _居住地址_鄉鎮市區) { _居住地址_鄉鎮市區 = value; OnPropertyChanged("居住地址_鄉鎮市區"); } } } /// /// 居住地址_街道地址 /// [DataObjectField(false, false, true, 50)] public string 居住地址_街道地址 { get { return _居住地址_街道地址; } set { if (value != _居住地址_街道地址) { _居住地址_街道地址 = value; OnPropertyChanged("居住地址_街道地址"); } } } /// /// 現職 /// [DataObjectField(false, false, true, 500)] public string 現職 { get { return _現職; } set { if (value != _現職) { _現職 = value; OnPropertyChanged("現職"); } } } /// /// 最高學歷 /// [DataObjectField(false, false, true, 1)] public string 最高學歷 { get { return _最高學歷; } set { if (value != _最高學歷) { _最高學歷 = value; OnPropertyChanged("最高學歷"); } } } /// /// 最高學歷學校 /// [DataObjectField(false, false, true, 200)] public string 最高學歷學校 { get { return _最高學歷學校; } set { if (value != _最高學歷學校) { _最高學歷學校 = value; OnPropertyChanged("最高學歷學校"); } } } /// /// 最高學歷科系 /// [DataObjectField(false, false, true, 200)] public string 最高學歷科系 { get { return _最高學歷科系; } set { if (value != _最高學歷科系) { _最高學歷科系 = value; OnPropertyChanged("最高學歷科系"); } } } /// /// 授課區域,以逗號分隔多個值 /// 類別代號是「講師授課區域」 /// [DataObjectField(false, false, true, 50)] public string 授課區域 { get { return _授課區域; } set { if (value != _授課區域) { _授課區域 = value; OnPropertyChanged("授課區域"); } } } /// /// 授課專長領域 /// [DataObjectField(false, false, true, 2000)] public string 授課專長領域 { get { return _授課專長領域; } set { if (value != _授課專長領域) { _授課專長領域 = value; OnPropertyChanged("授課專長領域"); } } } /// /// 授課經歷概述 /// [DataObjectField(false, false, true, 2000)] public string 授課經歷概述 { get { return _授課經歷概述; } set { if (value != _授課經歷概述) { _授課經歷概述 = value; OnPropertyChanged("授課經歷概述"); } } } /// /// 重要經歷 /// [DataObjectField(false, false, true, 2000)] public string 重要經歷 { get { return _重要經歷; } set { if (value != _重要經歷) { _重要經歷 = value; OnPropertyChanged("重要經歷"); } } } /// /// 重要研究與著作 /// [DataObjectField(false, false, true, 2000)] public string 重要研究與著作 { get { return _重要研究與著作; } set { if (value != _重要研究與著作) { _重要研究與著作 = value; OnPropertyChanged("重要研究與著作"); } } } /// /// 照片圖檔 /// [DataObjectField(false, false, true, 20)] public string 照片圖檔 { get { return _照片圖檔; } set { if (value != _照片圖檔) { _照片圖檔 = value; OnPropertyChanged("照片圖檔"); } } } /// /// 合作狀態 /// [DataObjectField(false, false, true, 1)] public string 合作狀態 { get { return _合作狀態; } set { if (value != _合作狀態) { _合作狀態 = value; OnPropertyChanged("合作狀態"); } } } /// /// 合作狀態說明 /// [DataObjectField(false, false, true, 2000)] public string 合作狀態說明 { get { return _合作狀態說明; } set { if (value != _合作狀態說明) { _合作狀態說明 = value; OnPropertyChanged("合作狀態說明"); } } } /// /// 合作方式 /// [DataObjectField(false, false, true, 2000)] public string 合作方式 { get { return _合作方式; } set { if (value != _合作方式) { _合作方式 = value; OnPropertyChanged("合作方式"); } } } /// /// 證照資料 /// [DataObjectField(false, false, true, 2000)] public string 證照資料 { get { return _證照資料; } set { if (value != _證照資料) { _證照資料 = value; OnPropertyChanged("證照資料"); } } } /// /// 異常標註 /// [DataObjectField(false, false, true, 2000)] public string 異常標註 { get { return _異常標註; } set { if (value != _異常標註) { _異常標註 = value; OnPropertyChanged("異常標註"); } } } /// /// 講師來源 /// [DataObjectField(false, false, true, 2000)] public string 講師來源 { get { return _講師來源; } set { if (value != _講師來源) { _講師來源 = value; OnPropertyChanged("講師來源"); } } } /// /// 推薦授課主題 /// [DataObjectField(false, false, true, 2000)] public string 推薦授課主題 { get { return _推薦授課主題; } set { if (value != _推薦授課主題) { _推薦授課主題 = value; OnPropertyChanged("推薦授課主題"); } } } /// /// 備註 /// [DataObjectField(false, false, true, 2000)] public string 備註 { get { return _備註; } set { if (value != _備註) { _備註 = value; OnPropertyChanged("備註"); } } } #endregion } }