chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebLib;
namespace Education
{
public class DAC_公司別 : NameValueList
{
public DAC_公司別()
{
this.Add("新譽管理有限公司", "TY");
this.Add("展譽職涯管理顧問有限公司", "JY");
}
}
}
@@ -0,0 +1,897 @@
//
// 這個檔案是 場地 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 場地 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_場地 : WebLib.DAC
{
private string _tableName = "場地";
private string _select = "select 編號, 單位名稱, 場地名稱, 場地類型, 價格, 坪數, 容納人數, 地址_郵編, 地址_縣市, 地址_鄉鎮市區, 地址_街道地址, 捷運可到, 捷運分鐘, 公車可到, 公車分鐘, 火車可到, 火車分鐘, 步行可到, 步行分鐘, 設備提供, 聯絡人, 聯絡人電話, 電子郵件, 傳真, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "單位名稱, 場地名稱, 場地類型, 價格, 坪數, 容納人數, 地址_郵編, 地址_縣市, 地址_鄉鎮市區, 地址_街道地址, 捷運可到, 捷運分鐘, 公車可到, 公車分鐘, 火車可到, 火車分鐘, 步行可到, 步行分鐘, 設備提供, 聯絡人, 聯絡人電話, 電子郵件, 傳真, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@單位名稱, @場地名稱, @場地類型, @價格, @坪數, @容納人數, @地址_郵編, @地址_縣市, @地址_鄉鎮市區, @地址_街道地址, @捷運可到, @捷運分鐘, @公車可到, @公車分鐘, @火車可到, @火車分鐘, @步行可到, @步行分鐘, @設備提供, @聯絡人, @聯絡人電話, @電子郵件, @傳真, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 場地 ";
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()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
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;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public int InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return -1;
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, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
int newId;
ExecuteScalar(cmdInsert, out newId);
AfterInsertOne(value);
ts.Complete();
return newId;
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
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, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_編號", value.);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int , int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
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 = new TransactionScope(TransactionScopeOption.Required))
{
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;
}
}
///<summary>
/// 場地 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem. = DAC.GetInt32(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem. = DAC.GetString(reader[2]);
newItem. = DAC.GetString(reader[3]);
newItem. = DAC.GetInt32(reader[4]);
newItem. = DAC.GetInt32(reader[5]);
newItem. = DAC.GetInt32(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.GetInt32(reader[12]);
newItem. = DAC.GetString(reader[13]);
newItem. = DAC.GetInt32(reader[14]);
newItem. = DAC.GetString(reader[15]);
newItem. = DAC.GetInt32(reader[16]);
newItem. = DAC.GetString(reader[17]);
newItem. = DAC.GetInt32(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.DB_APPNO = DAC.GetInt32(reader[25]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[26]);
newItem.DB_CRUSR = DAC.GetString(reader[27]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[28]);
newItem.DB_TRUSR = DAC.GetString(reader[29]);
Add(newItem);
}
}
}
///<summary>
/// 場地 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _編號;
private string _單位名稱;
private string _場地名稱;
private string _場地類型;
private int _價格;
private int _坪數;
private int _容納人數;
private string _地址_郵編;
private string _地址_縣市;
private string _地址_鄉鎮市區;
private string _地址_街道地址;
private string _捷運可到;
private int _捷運分鐘;
private string _公車可到;
private int _公車分鐘;
private string _火車可到;
private int _火車分鐘;
private string _步行可到;
private int _步行分鐘;
private string _設備提供;
private string _聯絡人;
private string _聯絡人電話;
private string _電子郵件;
private string _傳真;
private string _備註;
#region
///<summary>
/// 編號
///</summary>
[DataObjectField(true, false, false)]
public int
{
get
{
return _編號;
}
set
{
if (value != _編號)
{
_編號 = value;
OnPropertyChanged("編號");
}
}
}
///<summary>
/// 單位名稱
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _單位名稱;
}
set
{
if (value != _單位名稱)
{
_單位名稱 = value;
OnPropertyChanged("單位名稱");
}
}
}
///<summary>
/// 場地名稱
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _場地名稱;
}
set
{
if (value != _場地名稱)
{
_場地名稱 = value;
OnPropertyChanged("場地名稱");
}
}
}
///<summary>
/// 場地類型
///</summary>
[DataObjectField(false, false, true, 20)]
public string
{
get
{
return _場地類型;
}
set
{
if (value != _場地類型)
{
_場地類型 = value;
OnPropertyChanged("場地類型");
}
}
}
///<summary>
/// 價格
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _價格;
}
set
{
if (value != _價格)
{
_價格 = value;
OnPropertyChanged("價格");
}
}
}
///<summary>
/// 坪數
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _坪數;
}
set
{
if (value != _坪數)
{
_坪數 = value;
OnPropertyChanged("坪數");
}
}
}
///<summary>
/// 容納人數
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _容納人數;
}
set
{
if (value != _容納人數)
{
_容納人數 = value;
OnPropertyChanged("容納人數");
}
}
}
///<summary>
/// 地址_郵編
///</summary>
[DataObjectField(false, false, true, 5)]
public string _郵編
{
get
{
return _地址_郵編;
}
set
{
if (value != _地址_郵編)
{
_地址_郵編 = value;
OnPropertyChanged("地址_郵編");
}
}
}
///<summary>
/// 地址_縣市
///</summary>
[DataObjectField(false, false, true, 10)]
public string _縣市
{
get
{
return _地址_縣市;
}
set
{
if (value != _地址_縣市)
{
_地址_縣市 = value;
OnPropertyChanged("地址_縣市");
}
}
}
///<summary>
/// 地址_鄉鎮市區
///</summary>
[DataObjectField(false, false, true, 10)]
public string _鄉鎮市區
{
get
{
return _地址_鄉鎮市區;
}
set
{
if (value != _地址_鄉鎮市區)
{
_地址_鄉鎮市區 = value;
OnPropertyChanged("地址_鄉鎮市區");
}
}
}
///<summary>
/// 地址_街道地址
///</summary>
[DataObjectField(false, false, true, 30)]
public string _街道地址
{
get
{
return _地址_街道地址;
}
set
{
if (value != _地址_街道地址)
{
_地址_街道地址 = value;
OnPropertyChanged("地址_街道地址");
}
}
}
///<summary>
/// 捷運可到
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _捷運可到;
}
set
{
if (value != _捷運可到)
{
_捷運可到 = value;
OnPropertyChanged("捷運可到");
}
}
}
///<summary>
/// 捷運分鐘
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _捷運分鐘;
}
set
{
if (value != _捷運分鐘)
{
_捷運分鐘 = value;
OnPropertyChanged("捷運分鐘");
}
}
}
///<summary>
/// 公車可到
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _公車可到;
}
set
{
if (value != _公車可到)
{
_公車可到 = value;
OnPropertyChanged("公車可到");
}
}
}
///<summary>
/// 公車分鐘
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _公車分鐘;
}
set
{
if (value != _公車分鐘)
{
_公車分鐘 = value;
OnPropertyChanged("公車分鐘");
}
}
}
///<summary>
/// 火車可到
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _火車可到;
}
set
{
if (value != _火車可到)
{
_火車可到 = value;
OnPropertyChanged("火車可到");
}
}
}
///<summary>
/// 火車分鐘
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _火車分鐘;
}
set
{
if (value != _火車分鐘)
{
_火車分鐘 = value;
OnPropertyChanged("火車分鐘");
}
}
}
///<summary>
/// 步行可到
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _步行可到;
}
set
{
if (value != _步行可到)
{
_步行可到 = value;
OnPropertyChanged("步行可到");
}
}
}
///<summary>
/// 步行分鐘
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _步行分鐘;
}
set
{
if (value != _步行分鐘)
{
_步行分鐘 = value;
OnPropertyChanged("步行分鐘");
}
}
}
///<summary>
/// 設備提供
///</summary>
[DataObjectField(false, false, true, 1000)]
public string
{
get
{
return _設備提供;
}
set
{
if (value != _設備提供)
{
_設備提供 = value;
OnPropertyChanged("設備提供");
}
}
}
///<summary>
/// 聯絡人
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _聯絡人;
}
set
{
if (value != _聯絡人)
{
_聯絡人 = value;
OnPropertyChanged("聯絡人");
}
}
}
///<summary>
/// 聯絡人電話
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _聯絡人電話;
}
set
{
if (value != _聯絡人電話)
{
_聯絡人電話 = value;
OnPropertyChanged("聯絡人電話");
}
}
}
///<summary>
/// 電子郵件
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _電子郵件;
}
set
{
if (value != _電子郵件)
{
_電子郵件 = value;
OnPropertyChanged("電子郵件");
}
}
}
///<summary>
/// 傳真
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _傳真;
}
set
{
if (value != _傳真)
{
_傳真 = value;
OnPropertyChanged("傳真");
}
}
}
///<summary>
/// 備註
///</summary>
[DataObjectField(false, false, true, 1000)]
public string
{
get
{
return _備註;
}
set
{
if (value != _備註)
{
_備註 = value;
OnPropertyChanged("備註");
}
}
}
#endregion
}
}
@@ -0,0 +1,347 @@
//
// 這個檔案是 場地 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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
{
///<summary>
/// 場地 資料存取類別
///</summary>
public partial class DAC_場地 : WebLib.DAC
{
///<summary>
/// 給查詢畫面用的 Select 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select(bool noInputReturnAll, string , string , string , string , string )
{
List result = new List();
if (!noInputReturnAll
&& == null
&& == null
&& == null
&& == null
&& == null)
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where;
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 單位名稱 like @單位名稱 ";
AddParam(cmdSelect, "單位名稱", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 場地名稱 like @場地名稱 ";
AddParam(cmdSelect, "場地名稱", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 場地類型 like @場地類型 ";
AddParam(cmdSelect, "場地類型", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 聯絡人 like @聯絡人 ";
AddParam(cmdSelect, "聯絡人", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 聯絡人電話 like @聯絡人電話 ";
AddParam(cmdSelect, "聯絡人電話", "%" + + "%");
}
cmdSelect.CommandText += _order;
Select(cmdSelect, ref list);
return result;
}
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
/// <summary>
/// 取得場地名稱
/// </summary>
/// <param name="職務ID"></param>
/// <returns></returns>
public string Get場地名稱(object )
{
DbCommand cmd = NewCommand("SELECT 場地名稱 FROM " + _tableName
+ " WHERE 編號=@編號");
AddParam(cmd, "編號", );
string s;
ExecuteScalar(cmd, out s);
return s;
}
public NameValueList Select地區ForDropDown()
{
NameValueList result = new NameValueList();
DbCommand cmd = NewCommand("SELECT DISTINCT 地址_縣市 FROM " + _tableName + " ORDER BY 地址_縣市");
result.Add("(請選擇)", "");
result.Fill(Select(cmd), "地址_縣市", "地址_縣市", false);
return result;
}
public NameValueList Select教室類型ForDropDown()
{
NameValueList result = new NameValueList();
DbCommand cmd = NewCommand("SELECT DISTINCT 場地類型 FROM " + _tableName + " ORDER BY 場地類型");
result.Add("(請選擇)", "");
result.Fill(Select(cmd), "場地類型", "場地類型", false);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List (bool noInputReturnAll, string , int 1, int 2, int 1, int 2,
string , int 滿1, int 滿2)
{
List result = new List();
if (!noInputReturnAll
&& == null
&& == null
&& 1 == 0
&& 2 == 0
&& 1 == 0
&& 2 == 0
&& 滿1 == 0
&& 滿2 == 0)
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select +
@" FROM
( SELECT A.*,
ISNULL(( SELECT CAST(SUM(場地滿意度分數) AS FLOAT) / COUNT(1)
FROM 滿意度調查課程企劃
WHERE 場地編號 = A.編號), 0) AS 滿意度
FROM 場地 A
) AS TMP1"
+ _where;
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 地址_縣市 like @地區 ";
AddParam(cmdSelect, "地區", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 場地類型 like @場地類型 ";
AddParam(cmdSelect, "場地類型", "%" + + "%");
}
if (1 > 0 && 2 > 0)
{
cmdSelect.CommandText += " and 價格 >= @價格1 and 價格 <= @價格2 ";
AddParam(cmdSelect, "價格1", 1);
AddParam(cmdSelect, "價格2", 2);
}
else if (1 > 0 && 2 == 0)
{
cmdSelect.CommandText += " and 價格 >= @價格1 ";
AddParam(cmdSelect, "價格1", 1);
}
else if (1 == 0 && 2 < 0)
{
cmdSelect.CommandText += " and 價格 <= @價格2 ";
AddParam(cmdSelect, "價格2", 2);
}
if (1 > 0 && 2 > 0)
{
cmdSelect.CommandText += " and 容納人數 >= @人數1 and 容納人數 <= @人數2 ";
AddParam(cmdSelect, "人數1", 1);
AddParam(cmdSelect, "人數2", 2);
}
else if (1 > 0 && 2 == 0)
{
cmdSelect.CommandText += " and 容納人數 >= @人數1 ";
AddParam(cmdSelect, "人數1", 1);
}
else if (1 == 0 && 2 < 0)
{
cmdSelect.CommandText += " and 容納人數 <= @人數2 ";
AddParam(cmdSelect, "人數2", 2);
}
if (滿1 != 0 && 滿2 != 0)
{
cmdSelect.CommandText += " and 滿意度 between @滿意度1 and @滿意度2 ";
AddParam(cmdSelect, "滿意度1", 滿1);
AddParam(cmdSelect, "滿意度2", 滿2);
}
else if (滿1 != 0 && 滿2 == 0)
{
cmdSelect.CommandText += " and 滿意度 >= @滿意度1 ";
AddParam(cmdSelect, "滿意度1", 滿1);
}
else if (滿1 == 0 && 滿2 != 0)
{
cmdSelect.CommandText += " and 滿意度 <= @滿意度2 ";
AddParam(cmdSelect, "滿意度2", 滿2);
}
cmdSelect.CommandText += _order;
Select(cmdSelect, ref list);
return result;
}
public DataTable Select滿意度統計(int )
{
DbCommand cmdSelect = NewCommand(
@"SELECT
(SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 5) AS 場地滿意度5,
(SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 4) AS 場地滿意度4,
(SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 3) AS 場地滿意度3,
(SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 2) AS 場地滿意度2,
(SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 1) AS 場地滿意度1,
(SELECT ISNULL(AVG(CAST(場地滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號) AS 場地滿意度總分");
AddParam(cmdSelect, "場地編號", );
return Select(cmdSelect);
}
public bool IsOccipued(int )
{
DbCommand cmd = NewCommand(
@"SELECT
(SELECT COUNT(1) FROM 場地遴選 WHERE 場地編號_A = @場地編號 OR 場地編號_B = @場地編號 OR 場地編號_C = @場地編號)
+ (SELECT COUNT(1) FROM 場地異動 WHERE 場地編號 = @場地編號)");
AddParam(cmd, "場地編號", );
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
}
///<summary>
/// 場地 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 場地 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,528 @@
//
// 這個檔案是 片語 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
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
{
///<summary>
/// 片語 資料存取類別
///</ summary>
[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;
}
///<summary>
/// 給查詢畫面用的增加 Where 條件的方法
///</summary>
private void AddWhere(DbCommand cmdSelect, ref bool noInput, 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, "片語內容", "%" + + "%");
}
}
///<summary>
/// 給查詢畫面用的 Select 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select(bool noInputReturnAll, 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;
}
///<summary>
/// 給查詢畫面用的 SelectCount 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public int SelectCount(bool noInputReturnAll, 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;
}
///<summary>
/// 給查詢畫面用的 SelectPage 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectPage(bool noInputReturnAll, int startRowIndex, int maximumRows, 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 Item InsertOne(Item 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, "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 Item UpdateOne(Item 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("在更新 \"片語\" 資料表時發生並行例外:找不到要更新的資料列");
}
else
{
DoBackup(oldValues[0], "UPDATE");
}
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, "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 Item UpdateOne(Item value, Item 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("在更新 \"片語\" 資料表時發生並行例外:找不到要更新的資料列");
}
else
{
DoBackup(oldValues[0], "UPDATE");
}
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, "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("在刪除 \"片語\" 資料表時發生並行例外:找不到要刪除的資料列");
}
else
{
DoBackup(oldValues[0], "DELETE");
}
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(Item 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("在刪除 \"片語\" 資料表時發生並行例外:找不到要刪除的資料列");
}
else
{
DoBackup(oldValues[0], "DELETE");
}
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;
}
public void DoBackup(Item value, string updateMode)
{
}
}
///<summary>
///片語 資料集合類別
///</summary>
[Serializable]
public partial class List : List<Item>, IDataList
{
public void Fill(DbDataReader reader)
{
DAC.FillData<Item>(reader, this);
}
}
///<summary>
/// 片語 資料紀錄類別
///</summary>
[Serializable]
public partial class Item : DataItemBase
{
private int _編號;
private string _適用欄位;
private string _片語內容;
#region
///<summary>
/// 編號
///</summary>
[DataObjectField(true, false, false)]
public int
{
get
{
return _編號;
}
set
{
if (value != _編號)
{
_編號 = value;
OnPropertyChanged("編號");
}
}
}
///<summary>
/// 適用欄位
///</summary>
[DataObjectField(false, false, false, 100)]
public string
{
get
{
return _適用欄位;
}
set
{
if (value != _適用欄位)
{
_適用欄位 = value;
OnPropertyChanged("適用欄位");
}
}
}
///<summary>
/// 片語內容
///</summary>
[DataObjectField(false, false, false, 100)]
public string
{
get
{
return _片語內容;
}
set
{
if (value != _片語內容)
{
_片語內容 = value;
OnPropertyChanged("片語內容");
}
}
}
#endregion
}
}
@@ -0,0 +1,195 @@
//
// 這個檔案是 片語 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using WebLib;
namespace Education
{
///<summary>
/// 片語 資料存取類別
///</summary>
public partial class DAC_片語 : WebLib.DAC
{
#region
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne(Item value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne(Item value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne(Item value)
{
return true;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne(Item value, Item original_value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne(Item value)
{
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne(Item value, Item original_value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(Item value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(Item value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
#endregion
// 有另外加上去的屬性及方法,請加在這裡
public List SelectBy適用欄位(string )
{
return Select(false, , "", "片語內容");
}
public NameValueList SelectSearchBy適用欄位(string )
{
var result = new NameValueList();
result.Add("(請選擇)", "");
foreach (var item in Select(false, , "", "片語內容"))
{
result.Add(item., item.);
}
return result;
}
public NameValueList OptionsForSearch()
{
var options = Options();
options.Insert(0, new NameValueItem() { Name = "(全部)", Value = "" });
return options;
}
public NameValueList Options()
{
return new NameValueList() {
new NameValueItem() { Name = "授課專長領域", Value = "授課專長領域" },
new NameValueItem() { Name = "合作狀態", Value = "合作狀態" },
new NameValueItem() { Name = "合作方式", Value = "合作方式" },
new NameValueItem() { Name = "證照資料", Value = "證照資料" },
new NameValueItem() { Name = "異常標註", Value = "異常標註" },
new NameValueItem() { Name = "講師來源", Value = "講師來源" },
new NameValueItem() { Name = "推薦授課主題", Value = "推薦授課主題" },
new NameValueItem() { Name = "跟課觀察", Value = "跟課觀察" },
new NameValueItem() { Name = "異常情形", Value = "異常情形" },
new NameValueItem() { Name = "合作滿意度", Value = "合作滿意度" },
new NameValueItem() { Name = "活動地點", Value = "活動地點" },
new NameValueItem() { Name = "活動類別", Value = "活動類別" },
new NameValueItem() { Name = "票價資訊", Value = "票價資訊" }
};
}
}
///<summary>
///片語 資料集合類別
///</summary>
public partial class List : List<Item>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
///片語 資料紀錄類別
///</summary>
public partial class Item
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,117 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_站別: DAC
{
public DAC_站別()
{ }
public DAC_站別(DbConnection conn)
: base(conn)
{ }
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList SelectForList()
{
NameValueList result = new NameValueList();
DbCommand cmd1 = NewCommand();
cmd1.CommandText =
@"SELECT 'A|' + CAST(組織ID AS VARCHAR) AS VALUE, '[部門] ' + 組織名稱 AS NAME FROM 組織圖
WHERE 上層ID = 1
UNION ALL
SELECT 'B|' + BSCLS AS VALUE, '[站別] ' + BSRMK AS NAME FROM BCLS WHERE BSPAR='BPSNBRH'
ORDER BY VALUE";
bool wantClose;
IDataReader reader1 = ExecuteReader(cmd1, out wantClose);
try
{
result.Fill(reader1, 1, 0);
cmd1.Cancel();
reader1.Close();
}
finally
{
cmd1.Dispose();
reader1.Dispose();
CloseConnection(wantClose);
}
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList SelectForDropDown()
{
NameValueList result = new NameValueList();
result.Add("(全部)", "");
DbCommand cmd = NewCommand();
cmd.CommandText =
@"SELECT 'A|' + CAST(組織ID AS VARCHAR) AS VALUE, '[部門] ' + 組織名稱 AS NAME FROM 組織圖
WHERE 上層ID = 1
UNION ALL
SELECT 'B|' + BSCLS AS VALUE, '[站別] ' + BSRMK AS NAME FROM BCLS WHERE BSPAR='BPSNBRH'
ORDER BY VALUE";
bool wantClose;
IDataReader reader = ExecuteReader(cmd, out wantClose);
try
{
result.Fill(reader, 1, 0, false);
cmd.Cancel();
reader.Close();
}
finally
{
cmd.Dispose();
reader.Dispose();
CloseConnection(wantClose);
}
return result;
}
public string GetName(object value)
{
if (value == null)
return "";
string[] valueParts = DAC.GetString(value).Split('|');
if (valueParts.Length == 0)
return "";
if (valueParts.Length == 1 || valueParts.Length > 1 && valueParts[0] == "B")
{
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT BSRMK FROM BCLS WHERE BSPAR='BPSNBRH' AND BSCLS=@BSCLS";
if (valueParts.Length == 1)
AddParam(cmd, "BSCLS", valueParts[0]);
if (valueParts.Length > 1)
AddParam(cmd, "BSCLS", valueParts[1]);
string result;
ExecuteScalar(cmd, out result);
return result;
}
else if (valueParts.Length > 1 && valueParts[0] == "A")
{
DbCommand cmd = NewCommand();
cmd.CommandText = @"SELECT 組織名稱 FROM 組織圖 WHERE 組織ID=@組織ID";
AddParam(cmd, "組織ID", valueParts[1]);
string result;
ExecuteScalar(cmd, out result);
return result;
}
else
return "";
}
}
}
@@ -0,0 +1,377 @@
//
// 這個檔案是 組織人員 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 組織人員 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_組織人員 : WebLib.DAC
{
//private string _tableName = "組織人員";
private string _select = "select 組織ID, 人員ID, 職務ID, 直接主管ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "組織ID, 人員ID, 職務ID, 直接主管ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@組織ID, @人員ID, @職務ID, @直接主管ID, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 組織人員 ";
private string _where = " where 1=1 ";
private string _order = " order by 組織ID, 人員ID ";
public DAC_組織人員()
: base()
{
}
public DAC_組織人員(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(int ID, string ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 組織ID = @組織ID "
+ " and 人員ID = @人員ID "
;
AddParam(cmdSelect, "組織ID", ID);
AddParam(cmdSelect, "人員ID", ID);
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 組織人員"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
;
AddParam(cmdInsert, "組織ID", value.ID);
AddParam(cmdInsert, "人員ID", value.ID);
AddParam(cmdInsert, "職務ID", value.ID);
AddParam(cmdInsert, "直接主管ID", value.ID);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
ExecuteNonQuery(cmdInsert);
AfterInsertOne(value);
ts.Complete();
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value.ID, value.ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"組織人員\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 組織人員
set
職務ID = @職務ID ,
直接主管ID = @直接主管ID ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 組織ID = @original_組織ID
and 人員ID = @original_人員ID
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "職務ID", value.ID);
AddParam(cmdUpdate, "直接主管ID", value.ID);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_組織ID", value.ID);
AddParam(cmdUpdate, "original_人員ID", value.ID);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int ID, string ID, int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(ID, ID, DB_APPNO))
return -1;
List oldValues = SelectOne(ID, ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"組織人員\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 組織人員
where 1=1
and 組織ID = @組織ID
and 人員ID = @人員ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織ID", ID);
AddParam(cmdDelete, "人員ID", ID);
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(ID, ID, 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 = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value.ID, value.ID);
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 組織ID = @組織ID
and 人員ID = @人員ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織ID", value.ID);
AddParam(cmdDelete, "人員ID", value.ID);
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 ID, string ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 組織ID = @組織ID "
+ " and 人員ID = @人員ID "
;
AddParam(cmdSelect, "組織ID", ID);
AddParam(cmdSelect, "人員ID", ID);
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 組織人員 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem.ID = DAC.GetInt32(reader[0]);
newItem.ID = DAC.GetString(reader[1]);
newItem.ID = DAC.GetInt32(reader[2]);
newItem.ID = DAC.GetString(reader[3]);
newItem.DB_APPNO = DAC.GetInt32(reader[4]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[5]);
newItem.DB_CRUSR = DAC.GetString(reader[6]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[7]);
newItem.DB_TRUSR = DAC.GetString(reader[8]);
Add(newItem);
}
}
}
///<summary>
/// 組織人員 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _組織ID;
private string _人員ID;
private int _職務ID;
private string _直接主管ID;
#region
///<summary>
///
///</summary>
[DataObjectField(true, false, false)]
public int ID
{
get
{
return _組織ID;
}
set
{
if (value != _組織ID)
{
_組織ID = value;
OnPropertyChanged("組織ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(true, false, false, 10)]
public string ID
{
get
{
return _人員ID;
}
set
{
if (value != _人員ID)
{
_人員ID = value;
OnPropertyChanged("人員ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, false)]
public int ID
{
get
{
return _職務ID;
}
set
{
if (value != _職務ID)
{
_職務ID = value;
OnPropertyChanged("職務ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, true, 10)]
public string ID
{
get
{
return _直接主管ID;
}
set
{
if (value != _直接主管ID)
{
_直接主管ID = value;
OnPropertyChanged("直接主管ID");
}
}
}
#endregion
}
}
@@ -0,0 +1,195 @@
//
// 這個檔案是 組織人員 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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
{
///<summary>
/// 組織人員 資料存取類別
///</summary>
public partial class DAC_組織人員 : WebLib.DAC
{
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int ID, string ID, int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int ID, string ID, int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select組織(int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 組織ID = @組織ID "
+ _order;
AddParam(cmdSelect, "組織ID", ID);
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select組織人員(int ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"SELECT '' AS 人員ID, '(無)' AS 人員姓名
UNION ALL
SELECT A.人員ID, A.人員ID + ' ' + B.BPNME AS 人員姓名 FROM 組織人員 A
INNER JOIN BPSNView B ON A.人員ID=B.BPENO
WHERE A.組織ID = @組織ID
ORDER BY 人員ID ";
AddParam(cmdSelect, "組織ID", ID);
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public void Delete組織人員(int ID)
{
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"DELETE FROM 組織人員
WHERE 組織ID = @組織ID";
AddParam(cmdDelete, "組織ID", ID);
ExecuteNonQuery(cmdDelete);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select人員所屬的組織(string ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 人員ID = @人員ID "
+ _order;
AddParam(cmdSelect, "人員ID", ID);
Select(cmdSelect, ref list);
return result;
}
/// <summary>
/// 判斷人員是否屬於某組織
/// </summary>
/// <param name="組織ID">組織編號</param>
/// <param name="人員ID">人員編號</param>
/// <returns></returns>
public bool Is人員屬於組織(int ID, string ID)
{
return SelectOne(ID, ID).Count > 0;
}
}
///<summary>
/// 組織人員 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 組織人員 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,422 @@
//
// 這個檔案是 組織圖 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 組織圖 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_組織圖 : WebLib.DAC
{
private string _tableName = "組織圖";
private string _select = "select 組織ID, 組織名稱, 組織類別ID, 上層ID, 排序, 部門主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "組織名稱, 組織類別ID, 上層ID, 排序, 部門主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@組織名稱, @組織類別ID, @上層ID, @排序, @部門主管, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 組織圖 ";
private string _where = " where 1=1 ";
private string _order = " order by 組織ID ";
public DAC_組織圖()
: base()
{
}
public DAC_組織圖(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 組織ID = @組織ID "
;
AddParam(cmdSelect, "組織ID", ID);
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public int InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return -1;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 組織圖"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
+ "select @@identity"
;
AddParam(cmdInsert, "組織名稱", value.);
AddParam(cmdInsert, "組織類別ID", value.ID);
AddParam(cmdInsert, "上層ID", value.ID);
AddParam(cmdInsert, "排序", value.);
AddParam(cmdInsert, "部門主管", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
int newId;
ExecuteScalar(cmdInsert, out newId);
AfterInsertOne(value);
ts.Complete();
return newId;
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value.ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"組織圖\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 組織圖
set
組織名稱 = @組織名稱 ,
組織類別ID = @組織類別ID ,
上層ID = @上層ID ,
排序 = @排序 ,
部門主管 = @部門主管 ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 組織ID = @original_組織ID
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "組織名稱", value.);
AddParam(cmdUpdate, "組織類別ID", value.ID);
AddParam(cmdUpdate, "上層ID", value.ID);
AddParam(cmdUpdate, "排序", value.);
AddParam(cmdUpdate, "部門主管", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_組織ID", value.ID);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int ID, int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(ID, DB_APPNO))
return -1;
List oldValues = SelectOne(ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"組織圖\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 組織圖
where 1=1
and 組織ID = @組織ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織ID", ID);
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(ID, 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 = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value.ID);
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 組織ID = @組織ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織ID", value.ID);
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 ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 組織ID = @組織ID "
;
AddParam(cmdSelect, "組織ID", ID);
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 組織圖 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem.ID = DAC.GetInt32(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem.ID = DAC.GetInt32(reader[2]);
newItem.ID = DAC.GetInt32(reader[3]);
newItem. = DAC.GetInt32(reader[4]);
newItem. = DAC.GetString(reader[5]);
newItem.DB_APPNO = DAC.GetInt32(reader[6]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[7]);
newItem.DB_CRUSR = DAC.GetString(reader[8]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[9]);
newItem.DB_TRUSR = DAC.GetString(reader[10]);
Add(newItem);
}
}
}
///<summary>
/// 組織圖 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _組織ID;
private string _組織名稱;
private int _組織類別ID;
private int _上層ID;
private int _排序;
private string _部門主管;
#region
///<summary>
///
///</summary>
[DataObjectField(true, false, false)]
public int ID
{
get
{
return _組織ID;
}
set
{
if (value != _組織ID)
{
_組織ID = value;
OnPropertyChanged("組織ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, false, 30)]
public string
{
get
{
return _組織名稱;
}
set
{
if (value != _組織名稱)
{
_組織名稱 = value;
OnPropertyChanged("組織名稱");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, false)]
public int ID
{
get
{
return _組織類別ID;
}
set
{
if (value != _組織類別ID)
{
_組織類別ID = value;
OnPropertyChanged("組織類別ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, true)]
public int ID
{
get
{
return _上層ID;
}
set
{
if (value != _上層ID)
{
_上層ID = value;
OnPropertyChanged("上層ID");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _排序;
}
set
{
if (value != _排序)
{
_排序 = value;
OnPropertyChanged("排序");
}
}
}
///<summary>
///
///</summary>
[DataObjectField(false, false, true, 10)]
public string
{
get
{
return _部門主管;
}
set
{
if (value != _部門主管)
{
_部門主管 = value;
OnPropertyChanged("部門主管");
}
}
}
#endregion
}
}
@@ -0,0 +1,246 @@
//
// 這個檔案是 組織圖 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
using WebLib;
namespace Education
{
///<summary>
/// 組織圖 資料存取類別
///</summary>
public partial class DAC_組織圖 : WebLib.DAC
{
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
value. = Next排序(value.ID, value.ID);
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
new DAC_組織人員(conn).Delete組織人員(value.ID);
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int ID, int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int ID, int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
public int Next排序(int ID, int ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "SELECT ISNULL(MAX(排序), 0) + 1 "
+ _from
+ " WHERE 組織類別ID=@組織類別ID AND 上層ID=@上層ID";
AddParam(cmdSelect, "組織類別ID", ID);
AddParam(cmdSelect, "上層ID", ID);
int i;
ExecuteScalar(cmdSelect, out i);
return i;
}
#region
public void DrawTree(TreeView tv, int Id)
{
tv.Nodes.Clear();
DoDrawTree(tv.Nodes, Id, 0);
}
private void DoDrawTree(TreeNodeCollection nodes, int Id, int ID)
{
List data = SelectOneLevel(Id, ID);
foreach ( item in data)
{
TreeNode newNode = new TreeNode();
newNode.Value = item.ID.ToString();
newNode.Text = item.;
nodes.Add(newNode);
DoDrawTree(newNode.ChildNodes, Id, item.ID);
}
}
public List SelectOneLevel(int ID, int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + " WHERE 組織類別ID=@組織類別ID AND 上層ID=@上層ID ORDER BY 排序";
AddParam(cmdSelect, "組織類別ID", ID);
AddParam(cmdSelect, "上層ID", ID);
Select(cmdSelect, ref list);
return result;
}
#endregion
#region 調
/// <summary>
/// 移動這個節點的位置
/// </summary>
/// <param name="組織ID"></param>
/// <param name="上層ID"></param>
/// <param name="userId"></param>
public void Update上層ID(int ID, int ID, string userId)
{
List values = SelectOne(ID);
if (values.Count == 0)
return;
values[0].ID = ID;
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
/// <summary>
/// 更新排序號
/// </summary>
public void Update排序(int ID, int , string userId)
{
List values = SelectOne(ID);
if (values.Count == 0)
return;
values[0]. = ;
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
#endregion
/// <summary>
/// 取得組織名稱
/// </summary>
/// <param name="職務ID"></param>
/// <returns></returns>
public string Get組織名稱(object ID)
{
DbCommand cmd = NewCommand("SELECT 組織名稱 FROM " + _tableName
+ " WHERE 組織ID=@組織ID");
AddParam(cmd, "組織ID", ID);
string s;
ExecuteScalar(cmd, out s);
return s;
}
private void Select子樹1(int ID, int ID, ref List list)
{
List sub = SelectOneLevel(ID, ID);
foreach ( item in sub)
{
list.Add(item);
Select子樹1(ID, item.ID, ref list);
}
}
public List Select子樹(int ID, int ID)
{
List result = SelectOne(ID);
if (result.Count >= 0)
Select子樹1(ID, ID, ref result);
return result;
}
}
///<summary>
/// 組織圖 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 組織圖 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,322 @@
//
// 這個檔案是 組織類別 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 組織類別 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_組織類別 : WebLib.DAC
{
//private string _tableName = "組織類別";
private string _select = "select 組織類別ID, 組織類別名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "組織類別名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@組織類別名稱, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 組織類別 ";
private string _where = " where 1=1 ";
private string _order = " order by 組織類別ID ";
public DAC_組織類別()
: base()
{
}
public DAC_組織類別(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 組織類別ID = @組織類別ID "
;
AddParam(cmdSelect, "組織類別ID", ID);
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public int InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return -1;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 組織類別"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
+ "select @@identity"
;
AddParam(cmdInsert, "組織類別名稱", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
int newId;
ExecuteScalar(cmdInsert, out newId);
AfterInsertOne(value);
ts.Complete();
return newId;
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value.ID);
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 組織類別ID = @original_組織類別ID
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "組織類別名稱", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_組織類別ID", value.ID);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int ID, int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(ID, DB_APPNO))
return -1;
List oldValues = SelectOne(ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"組織類別\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 組織類別
where 1=1
and 組織類別ID = @組織類別ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織類別ID", ID);
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(ID, 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 = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value.ID);
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 組織類別ID = @組織類別ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "組織類別ID", value.ID);
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 ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 組織類別ID = @組織類別ID "
;
AddParam(cmdSelect, "組織類別ID", ID);
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 組織類別 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem.ID = DAC.GetInt32(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem.DB_APPNO = DAC.GetInt32(reader[2]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[3]);
newItem.DB_CRUSR = DAC.GetString(reader[4]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[5]);
newItem.DB_TRUSR = DAC.GetString(reader[6]);
Add(newItem);
}
}
}
///<summary>
/// 組織類別 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _組織類別ID;
private string _組織類別名稱;
#region
///<summary>
/// 組織類別ID
///</summary>
[DataObjectField(true, false, false)]
public int ID
{
get
{
return _組織類別ID;
}
set
{
if (value != _組織類別ID)
{
_組織類別ID = value;
OnPropertyChanged("組織類別ID");
}
}
}
///<summary>
/// 組織類別名稱
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _組織類別名稱;
}
set
{
if (value != _組織類別名稱)
{
_組織類別名稱 = value;
OnPropertyChanged("組織類別名稱");
}
}
}
#endregion
}
}
@@ -0,0 +1,131 @@
//
// 這個檔案是 組織類別 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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
{
///<summary>
/// 組織類別 資料存取類別
///</summary>
public partial class DAC_組織類別 : WebLib.DAC
{
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int ID, int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int ID, int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 組織類別 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 組織類別 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,372 @@
//
// 這個檔案是 職務 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 職務 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_職務 : WebLib.DAC
{
private string _tableName = "職務";
private string _select = "select 職務ID, 職務名稱, 組織類別ID, 主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "職務名稱, 組織類別ID, 主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@職務名稱, @組織類別ID, @主管, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 職務 ";
private string _where = " where 1=1 ";
private string _order = " order by 職務ID ";
public DAC_職務()
: base()
{
}
public DAC_職務(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 職務ID = @職務ID "
;
AddParam(cmdSelect, "職務ID", ID);
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public int InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return -1;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 職務"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
+ "select @@identity"
;
AddParam(cmdInsert, "職務名稱", value.);
AddParam(cmdInsert, "組織類別ID", value.ID);
AddParam(cmdInsert, "主管", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
int newId;
ExecuteScalar(cmdInsert, out newId);
AfterInsertOne(value);
ts.Complete();
return newId;
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if (!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value.ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"職務\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 職務
set
職務名稱 = @職務名稱 ,
組織類別ID = @組織類別ID ,
主管 = @主管 ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 職務ID = @original_職務ID
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "職務名稱", value.);
AddParam(cmdUpdate, "組織類別ID", value.ID);
AddParam(cmdUpdate, "主管", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_職務ID", value.ID);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if (!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int ID, int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(ID, DB_APPNO))
return -1;
List oldValues = SelectOne(ID);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"職務\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 職務
where 1=1
and 職務ID = @職務ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "職務ID", ID);
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(ID, 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 = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value.ID);
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 職務ID = @職務ID
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "職務ID", value.ID);
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 ID)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 職務ID = @職務ID "
;
AddParam(cmdSelect, "職務ID", ID);
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 職務 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem.ID = DAC.GetInt32(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem.ID = DAC.GetString(reader[2]);
newItem. = DAC.GetString(reader[3]);
newItem.DB_APPNO = DAC.GetInt32(reader[4]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[5]);
newItem.DB_CRUSR = DAC.GetString(reader[6]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[7]);
newItem.DB_TRUSR = DAC.GetString(reader[8]);
Add(newItem);
}
}
}
///<summary>
/// 職務 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _職務ID;
private string _職務名稱;
private string _組織類別ID;
private string _主管;
#region
///<summary>
/// 職務ID
///</summary>
[DataObjectField(true, false, false)]
public int ID
{
get
{
return _職務ID;
}
set
{
if (value != _職務ID)
{
_職務ID = value;
OnPropertyChanged("職務ID");
}
}
}
///<summary>
/// 職務名稱
///</summary>
[DataObjectField(false, false, false, 30)]
public string
{
get
{
return _職務名稱;
}
set
{
if (value != _職務名稱)
{
_職務名稱 = value;
OnPropertyChanged("職務名稱");
}
}
}
///<summary>
/// 組織類別ID
///</summary>
[DataObjectField(false, false, false, 10)]
public string ID
{
get
{
return _組織類別ID;
}
set
{
if (value != _組織類別ID)
{
_組織類別ID = value;
OnPropertyChanged("組織類別ID");
}
}
}
///<summary>
/// 主管
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _主管;
}
set
{
if (value != _主管)
{
_主管 = value;
OnPropertyChanged("主管");
}
}
}
#endregion
}
}
@@ -0,0 +1,163 @@
//
// 這個檔案是 職務 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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
{
///<summary>
/// 職務 資料存取類別
///</summary>
public partial class DAC_職務 : WebLib.DAC
{
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int ID, int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int ID, int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select組織類別(int ID)
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " AND 組織類別ID = @組織類別ID " + _order;
AddParam(cmdSelect, "組織類別ID", ID);
Select(cmdSelect, ref list);
return result;
}
public string Get職務名稱(object ID)
{
DbCommand cmd = NewCommand("SELECT 職務名稱 FROM " + _tableName
+ " WHERE 職務ID=@職務ID");
AddParam(cmd, "職務ID", ID);
string s;
ExecuteScalar(cmd, out s);
return s;
}
public bool Is主管職(object ID)
{
DbCommand cmd = NewCommand("SELECT 主管 FROM " + _tableName
+ " WHERE 職務ID=@職務ID");
AddParam(cmd, "職務ID", ID);
string s;
ExecuteScalar(cmd, out s);
return s.ToUpper() == "Y";
}
}
///<summary>
/// 職務 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 職務 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using WebLib;
namespace Education
{
[DataObject]
public class DAC_計畫別
{
public DAC_計畫別()
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList SelectForList()
{
NameValueList result = new NameValueList();
result.Add("核心職能", "核心");
result.Add("專業職能", "專業");
result.Add("管理職能", "管理");
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public NameValueList SelectForDropDown()
{
NameValueList result = new NameValueList();
result.Add("(請選擇)", "");
result.Add("核心職能", "核心");
result.Add("專業職能", "專業");
result.Add("管理職能", "管理");
return result;
}
public static string Get計畫別名稱(object id)
{
switch (DAC.GetString(id))
{
case "1":
return "人提";
case "2":
return "人派";
case "3":
return "一般";
case "核心":
return "核心職能";
case "專業":
return "專業職能";
case "管理":
return "管理職能";
default:
return "";
}
}
}
}
@@ -0,0 +1,494 @@
//
// 這個檔案是 課程 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 課程 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_課程 : WebLib.DAC
{
private string _tableName = "課程";
private string _select = "select 課程編號, 課程類別, 課程類型, 課程名稱, 訓練對象, 課程時數, 課程內容, 預期效益, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "課程編號, 課程類別, 課程類型, 課程名稱, 訓練對象, 課程時數, 課程內容, 預期效益, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@課程編號, @課程類別, @課程類型, @課程名稱, @訓練對象, @課程時數, @課程內容, @預期效益, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 課程 ";
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()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(string )
{
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;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 課程"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
;
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.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
ExecuteNonQuery(cmdInsert);
AfterInsertOne(value);
ts.Complete();
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
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, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_課程編號", value.);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(string , int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
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 = new TransactionScope(TransactionScopeOption.Required))
{
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(string )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 課程編號 = @課程編號 "
;
AddParam(cmdSelect, "課程編號", );
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 課程 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem. = DAC.GetString(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem. = DAC.GetString(reader[2]);
newItem. = DAC.GetString(reader[3]);
newItem. = DAC.GetString(reader[4]);
newItem. = DAC.GetInt32(reader[5]);
newItem. = DAC.GetString(reader[6]);
newItem. = DAC.GetString(reader[7]);
newItem. = DAC.GetString(reader[8]);
newItem.DB_APPNO = DAC.GetInt32(reader[9]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[10]);
newItem.DB_CRUSR = DAC.GetString(reader[11]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[12]);
newItem.DB_TRUSR = DAC.GetString(reader[13]);
Add(newItem);
}
}
}
///<summary>
/// 課程 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private string _課程編號;
private string _課程類別;
private string _課程類型;
private string _課程名稱;
private string _訓練對象;
private int _課程時數;
private string _課程內容;
private string _預期效益;
private string _備註;
#region
///<summary>
/// 課程編號
///</summary>
[DataObjectField(true, false, false, 50)]
public string
{
get
{
return _課程編號;
}
set
{
if (value != _課程編號)
{
_課程編號 = value;
OnPropertyChanged("課程編號");
}
}
}
///<summary>
/// 課程類別
///</summary>
[DataObjectField(false, false, false, 50)]
public string
{
get
{
return _課程類別;
}
set
{
if (value != _課程類別)
{
_課程類別 = value;
OnPropertyChanged("課程類別");
}
}
}
///<summary>
/// 課程類型
///</summary>
[DataObjectField(false, false, false, 1)]
public string
{
get
{
return _課程類型;
}
set
{
if (value != _課程類型)
{
_課程類型 = value;
OnPropertyChanged("課程類型");
}
}
}
///<summary>
/// 課程名稱
///</summary>
[DataObjectField(false, false, false, 100)]
public string
{
get
{
return _課程名稱;
}
set
{
if (value != _課程名稱)
{
_課程名稱 = value;
OnPropertyChanged("課程名稱");
}
}
}
///<summary>
/// 訓練對象
///</summary>
[DataObjectField(false, false, true, 50)]
public string
{
get
{
return _訓練對象;
}
set
{
if (value != _訓練對象)
{
_訓練對象 = value;
OnPropertyChanged("訓練對象");
}
}
}
///<summary>
/// 課程時數
///</summary>
[DataObjectField(false, false, true)]
public int
{
get
{
return _課程時數;
}
set
{
if (value != _課程時數)
{
_課程時數 = value;
OnPropertyChanged("課程時數");
}
}
}
///<summary>
/// 課程內容
///</summary>
[DataObjectField(false, false, true, 2000)]
public string
{
get
{
return _課程內容;
}
set
{
if (value != _課程內容)
{
_課程內容 = value;
OnPropertyChanged("課程內容");
}
}
}
///<summary>
/// 預期效益
///</summary>
[DataObjectField(false, false, true, 1000)]
public string
{
get
{
return _預期效益;
}
set
{
if (value != _預期效益)
{
_預期效益 = value;
OnPropertyChanged("預期效益");
}
}
}
///<summary>
/// 備註
///</summary>
[DataObjectField(false, false, true, 1000)]
public string
{
get
{
return _備註;
}
set
{
if (value != _備註)
{
_備註 = value;
OnPropertyChanged("備註");
}
}
}
#endregion
}
}
@@ -0,0 +1,235 @@
//
// 這個檔案是 課程 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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
{
///<summary>
/// 課程 資料存取類別
///</summary>
public partial class DAC_課程 : WebLib.DAC
{
///<summary>
/// 給查詢畫面用的 Select 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select(bool noInputReturnAll, string , string , string , string )
{
List result = new List();
if (!noInputReturnAll
&& == null
&& == null
&& == null
&& == null)
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where;
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程編號 like @課程編號 ";
AddParam(cmdSelect, "課程編號", + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程類別 like @課程類別 ";
AddParam(cmdSelect, "課程類別", + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程名稱 like @課程名稱 ";
AddParam(cmdSelect, "課程名稱", + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 訓練對象 like @訓練對象 ";
AddParam(cmdSelect, "訓練對象", + "%");
}
cmdSelect.CommandText += _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select(string , string , string )
{
List result = new List();
if (( == null || .Length == 0) &&
( == null || .Length == 0) &&
( == null || .Length == 0))
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where;
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程類別 = @課程類別 ";
AddParam(cmdSelect, "課程類別", );
}
else
{
return result;
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程名稱 like @課程名稱 ";
AddParam(cmdSelect, "課程名稱", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 課程類型 = @課程類型 ";
AddParam(cmdSelect, "課程類型", );
}
cmdSelect.CommandText += _order;
Select(cmdSelect, ref list);
return result;
}
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
value. = Next課程編號(value.);
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(string , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(string , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
protected string Next課程編號(string )
{
return Next單號(DateTime.UtcNow.AddHours(8).Date, _tableName, "課程編號", String.Format("\"{0}\"<999>", ), "");
}
public bool IsOccipued(string )
{
DbCommand cmd = NewCommand(
@"SELECT COUNT(1) FROM 訓練課程內容 WHERE 課程編號 = @課程編號");
AddParam(cmd, "課程編號", );
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
}
///<summary>
/// 課程 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 課程 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,709 @@
//
// 這個檔案是 講師 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.EnterpriseServices.Internal;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using WebLib;
namespace Education
{
///<summary>
/// 講師 資料存取類別
///</summary>
public partial class DAC_講師 : WebLib.DAC
{
///<summary>
/// 給查詢畫面用的 Select 方法
///</summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select講師遴選(string , string , string )
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + " and 合作狀態 <> 'X' ";
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 姓名 like @姓名 ";
AddParam(cmdSelect, "姓名", + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 電話 like @電話 ";
AddParam(cmdSelect, "電話", + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and 手機 like @手機 ";
AddParam(cmdSelect, "手機", + "%");
}
cmdSelect.CommandText += _order;
Select(cmdSelect, ref list);
return result;
}
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 錯誤時會觸發的方法
///</summary>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value, original_value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value, original_value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
// 有另外加上去的屬性及方法,請加在這裡
public string Get姓名(object )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "SELECT 姓名 " + _from + " WHERE 編號 = @編號 ";
AddParam(cmdSelect, "編號", );
string s;
ExecuteScalar(cmdSelect, out s);
return s;
}
public NameValueList Select地區ForDropDown()
{
NameValueList result = new NameValueList();
DbCommand cmd = NewCommand("SELECT DISTINCT 居住地址_縣市 FROM " + _tableName + " ORDER BY 居住地址_縣市");
result.Add("(請選擇)", "");
result.Fill(Select(cmd), "居住地址_縣市", "居住地址_縣市", false);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List (bool noInputReturnAll, int startRowIndex, int maximumRows,
string , string , string , string , int 滿1, int 滿2,
string , string , string , string , int 1, int 2)
{
List result = new List();
if (!noInputReturnAll
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& 滿1 == 0
&& 滿2 == 0
&& 1 == 0
&& 2 == 0
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty())
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
var = "";
if (!string.IsNullOrEmpty() && !string.IsNullOrEmpty())
{
var k = .Split(' ');
var q = new List<string>();
for (int i = 0; i < k.Length; i++)
{
var w = new List<string>();
foreach (var f in .Split('|'))
{
if (f == "居住地區")
{
q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and (B.居住地址_縣市 like @關鍵字_{1} or B.居住地址_鄉鎮市區 like @關鍵字_{1}) ), 0)", f, i));
}
else
{
q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and B.{0} like @關鍵字_{1} ), 0)", f, i));
}
}
}
= string.Format(" ({0}) AS 符合度 ", string.Join(" + ", q.ToArray()));
}
if (string.IsNullOrEmpty())
= " 0 AS 符合度 ";
var SQL = _select + ", 滿意度 as 平均滿意度, 講師評鑑, 學員滿意度, 最高學歷TXT, 符合度, ROW_NUMBER() over (order by [符合度] desc) AS ROWNUMBER " +
string.Format(@" FROM
( SELECT A.*,
ISNULL(( SELECT CAST(SUM() + SUM() AS FLOAT) / 2 / COUNT(1)
FROM 滿調
WHERE = A.), 0) AS 滿,
ISNULL((SELECT AVG(cast( + + + + as float))
FROM 滿
WHERE = A.), 0) AS ,
ISNULL((SELECT AVG(cast(滿 as float))
FROM 滿
WHERE = A.), 0) AS 滿,
(SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BPSNSTP' AND BSCLS=A.) AS TXT,
{0}
FROM A
) AS TMP1 ", 符合度)
+ _where;
if ( != null && .Length > 0)
{
SQL += " and 姓名 like @姓名 ";
AddParam(cmdSelect, "姓名", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 授課區域 like @地區 ";
AddParam(cmdSelect, "地區", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 授課專長領域 like @授課專長領域 ";
AddParam(cmdSelect, "授課專長領域", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 最高學歷 = @學歷 ";
AddParam(cmdSelect, "學歷", );
}
if (滿1 != 0 && 滿2 != 0)
{
SQL += " and 滿意度 between @滿意度1 and @滿意度2 ";
AddParam(cmdSelect, "滿意度1", 滿1);
AddParam(cmdSelect, "滿意度2", 滿2);
}
else if (滿1 != 0 && 滿2 == 0)
{
SQL += " and 滿意度 >= @滿意度1 ";
AddParam(cmdSelect, "滿意度1", 滿1);
}
else if (滿1 == 0 && 滿2 != 0)
{
SQL += " and 滿意度 <= @滿意度2 ";
AddParam(cmdSelect, "滿意度2", 滿2);
}
if (!string.IsNullOrEmpty())
{
SQL += " and 合作狀態 = @合作狀態 ";
AddParam(cmdSelect, "合作狀態", );
}
if ( != null && .Length > 0)
{
SQL += " and 推薦授課主題 like @推薦授課主題 ";
AddParam(cmdSelect, "推薦授課主題", "%" + + "%");
}
if (1 != 0 && 2 != 0)
{
SQL += " and 講師評鑑 between @講師評鑑1 and @講師評鑑2 ";
AddParam(cmdSelect, "講師評鑑1", 1);
AddParam(cmdSelect, "講師評鑑2", 2);
}
else if (1 != 0 && 2 == 0)
{
SQL += " and 講師評鑑 >= @講師評鑑1 ";
AddParam(cmdSelect, "講師評鑑1", 1);
}
else if (1 == 0 && 2 != 0)
{
SQL += " and 講師評鑑 <= @講師評鑑2 ";
AddParam(cmdSelect, "講師評鑑2", 2);
}
if (!string.IsNullOrEmpty() && !string.IsNullOrEmpty())
{
var keywords = .Split(' ');
var keywordWhere = new List<string>();
for (int i = 0; i < keywords.Length; i++)
{
var and = keywords[i].StartsWith("+");
var keyword = keywords[i].Replace("+", "");
var oneWhere = new List<string>();
AddParam(cmdSelect, string.Format("關鍵字_{0}", i), string.Format("%{0}%", keyword));
foreach (var f in .Split('|'))
{
if (f == "居住地區")
{
oneWhere.Add(string.Format("(居住地址_縣市 LIKE @關鍵字_{0} OR 居住地址_鄉鎮市區 LIKE @關鍵字_{0})", i));
}
else
{
oneWhere.Add(string.Format("{0} LIKE @關鍵字_{1}", f, i));
}
}
keywordWhere.Add(string.Format("{0} ({1})",
(i == 0 ? "" : (and ? "AND" : "OR")),
string.Join(" OR ", oneWhere.ToArray())));
}
SQL += string.Format(" and ({0}) ", string.Join(" ", keywordWhere.ToArray()));
}
SQL = string.Format("select * FROM ({0}) AS TMP2 where ROWNUMBER > {1} and ROWNUMBER <= {2} order by [編號]", SQL, startRowIndex, startRowIndex + maximumRows);
cmdSelect.CommandText = SQL;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public int Count(bool noInputReturnAll,
string , string , string , string , int 滿1, int 滿2,
string , string , string , string , int 1, int 2)
{
if (!noInputReturnAll
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& 滿1 == 0
&& 滿2 == 0
&& 1 == 0
&& 2 == 0
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty()
&& string.IsNullOrEmpty())
return 0;
DbCommand cmdSelect = NewCommand();
var = "";
if (!string.IsNullOrEmpty() && !string.IsNullOrEmpty())
{
var k = .Split(' ');
var q = new List<string>();
for (int i = 0; i < k.Length; i++)
{
var w = new List<string>();
foreach (var f in .Split('|'))
{
if (f == "居住地區")
{
q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and (B.居住地址_縣市 like @關鍵字_{1} or B.居住地址_鄉鎮市區 like @關鍵字_{1}) ), 0)", f, i));
}
else
{
q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and B.{0} like @關鍵字_{1} ), 0)", f, i));
}
}
}
= string.Format(" ({0}) AS 符合度 ", string.Join(" + ", q.ToArray()));
}
if (string.IsNullOrEmpty())
= " 0 AS 符合度 ";
var SQL = _select + ", 滿意度 as 平均滿意度, 講師評鑑, 學員滿意度, 最高學歷TXT, 符合度 " +
string.Format(@" FROM
( SELECT A.*,
ISNULL(( SELECT CAST(SUM() + SUM() AS FLOAT) / 2 / COUNT(1)
FROM 滿調
WHERE = A.), 0) AS 滿,
ISNULL((SELECT AVG(cast( + + + + as float))
FROM 滿
WHERE = A.), 0) AS ,
ISNULL((SELECT AVG(cast(滿 as float))
FROM 滿
WHERE = A.), 0) AS 滿,
(SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BPSNSTP' AND BSCLS=A.) AS TXT,
{0}
FROM A
) AS TMP1 ", 符合度)
+ _where;
if ( != null && .Length > 0)
{
SQL += " and 姓名 like @姓名 ";
AddParam(cmdSelect, "姓名", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 授課區域 like @地區 ";
AddParam(cmdSelect, "地區", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 授課專長領域 like @授課專長領域 ";
AddParam(cmdSelect, "授課專長領域", "%" + + "%");
}
if ( != null && .Length > 0)
{
SQL += " and 最高學歷 = @學歷 ";
AddParam(cmdSelect, "學歷", );
}
if (滿1 != 0 && 滿2 != 0)
{
SQL += " and 滿意度 between @滿意度1 and @滿意度2 ";
AddParam(cmdSelect, "滿意度1", 滿1);
AddParam(cmdSelect, "滿意度2", 滿2);
}
else if (滿1 != 0 && 滿2 == 0)
{
SQL += " and 滿意度 >= @滿意度1 ";
AddParam(cmdSelect, "滿意度1", 滿1);
}
else if (滿1 == 0 && 滿2 != 0)
{
SQL += " and 滿意度 <= @滿意度2 ";
AddParam(cmdSelect, "滿意度2", 滿2);
}
if (!string.IsNullOrEmpty())
{
SQL += " and 合作狀態 = @合作狀態 ";
AddParam(cmdSelect, "合作狀態", );
}
if ( != null && .Length > 0)
{
SQL += " and 推薦授課主題 like @推薦授課主題 ";
AddParam(cmdSelect, "推薦授課主題", "%" + + "%");
}
if (1 != 0 && 2 != 0)
{
SQL += " and 講師評鑑 between @講師評鑑1 and @講師評鑑2 ";
AddParam(cmdSelect, "講師評鑑1", 1);
AddParam(cmdSelect, "講師評鑑2", 2);
}
else if (1 != 0 && 2 == 0)
{
SQL += " and 講師評鑑 >= @講師評鑑1 ";
AddParam(cmdSelect, "講師評鑑1", 1);
}
else if (1 == 0 && 2 != 0)
{
SQL += " and 講師評鑑 <= @講師評鑑2 ";
AddParam(cmdSelect, "講師評鑑2", 2);
}
if (!string.IsNullOrEmpty() && !string.IsNullOrEmpty())
{
var keywords = .Split(' ');
var keywordWhere = new List<string>();
for (int i = 0; i < keywords.Length; i++)
{
var and = keywords[i].StartsWith("+");
var keyword = keywords[i].Replace("+", "");
var oneWhere = new List<string>();
AddParam(cmdSelect, string.Format("關鍵字_{0}", i), string.Format("%{0}%", keyword));
foreach (var f in .Split('|'))
{
if (f == "居住地區")
{
oneWhere.Add(string.Format("(居住地址_縣市 LIKE @關鍵字_{0} OR 居住地址_鄉鎮市區 LIKE @關鍵字_{0})", i));
}
else
{
oneWhere.Add(string.Format("{0} LIKE @關鍵字_{1}", f, i));
}
}
keywordWhere.Add(string.Format("{0} ({1})",
(i == 0 ? "" : (and ? "AND" : "OR")),
string.Join(" OR ", oneWhere.ToArray())));
}
SQL += string.Format(" and ({0}) ", string.Join(" ", keywordWhere.ToArray()));
}
SQL = string.Format("select COUNT(*) FROM ({0}) AS TMP2", SQL);
cmdSelect.CommandText = SQL;
ExecuteScalar(cmdSelect, out int count);
return count;
}
public DataTable Select滿意度統計(int )
{
DbCommand cmdSelect = NewCommand(
@"SELECT
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 5) AS 滿5,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 4) AS 滿4,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 3) AS 滿3,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 2) AS 滿2,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 1) AS 滿1,
(SELECT ISNULL(AVG(CAST( AS FLOAT)), 0) FROM 滿調 WHERE = @) AS 滿,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 5) AS 滿5,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 4) AS 滿4,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 3) AS 滿3,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 2) AS 滿2,
(SELECT COUNT(1) FROM 滿調 WHERE = @ AND = 1) AS 滿1,
(SELECT ISNULL(AVG(CAST( AS FLOAT)), 0) FROM 滿調 WHERE = @) AS 滿");
AddParam(cmdSelect, "講師編號", );
return Select(cmdSelect);
}
public bool IsOccipued(int )
{
DbCommand cmd = NewCommand(
@"SELECT
(SELECT COUNT(1) FROM WHERE _A = @ OR _B = @ OR _C = @)
+ (SELECT COUNT(1) FROM WHERE = @)");
AddParam(cmd, "講師編號", );
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
public DataTable Select講師評鑑統計(int )
{
DbCommand cmdSelect = NewCommand(
@"SELECT AVG(cast(專業度 as float)) AS 專業度,
AVG(cast( as float)) AS ,
AVG(cast( as float)) AS ,
AVG(cast( as float)) AS ,
AVG(cast( as float)) AS ,
AVG(cast( + + + + as float)) AS ,
AVG(cast(滿 as float)) AS 滿
FROM 滿
WHERE = @");
AddParam(cmdSelect, "講師編號", );
return Select(cmdSelect);
}
public bool Is身份證字號Dulicate(int , string )
{
DbCommand cmd = NewCommand(
@"SELECT COUNT(1) FROM 講師 WHERE 編號<>@講師編號 AND 身份證字號=@身份證字號");
AddParam(cmd, "講師編號", );
AddParam(cmd, "身份證字號", );
int i;
ExecuteScalar(cmd, out i);
return i > 0;
}
private static NameValueList _講師合作狀態 = new NameValueList
{
new NameValueItem { Value = "C", Name = "收服務費" },
new NameValueItem { Value = "F", Name = "不收服務費" },
new NameValueItem { Value = "X", Name = "不合作" },
new NameValueItem { Value = "B", Name = "暫不排課" },
};
public static NameValueList Select講師合作狀態ForEdit()
{
var result = new NameValueList();
result.Add("(請選擇)", "");
result.AddRange(_講師合作狀態);
return result;
}
public static string Get講師合作狀態Text(string Value)
{
return _講師合作狀態.GetName(Value);
}
public List SelectByKeyword(string keyword)
{
List result = new List();
keyword = !string.IsNullOrEmpty(keyword) ? keyword.Trim() : string.Empty;
if (string.IsNullOrEmpty(keyword))
return result;
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
// 20260317 用戶決定不要這個限制
// + " and 合作狀態 <> 'X' "
+ " and (姓名 like @keyword or 身份證字號 like @keyword) "
+ _order;
AddParam(cmdSelect, "keyword", "%" + keyword + "%");
Select(cmdSelect, ref list);
return result;
}
}
///<summary>
/// 講師 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 講師 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
public double 滿 { get; set; }
public string TXT { get; set; }
public string
{
get
{
return string.IsNullOrEmpty(DAC.GetString().Trim()) ? "" : "★";
}
}
public string TXT
{
get
{
return DAC_講師.Get講師合作狀態Text();
}
}
public string RPT
{
get
{
return String.Format("{0}{1}", TXT, );
}
}
public string
{
get
{
return string.Format("{0}{1}{2}{3}", _郵編, _縣市, _鄉鎮市區, _街道地址);
}
}
public string
{
get
{
return string.Format("{0}{1}{2}{3}", _郵編, _縣市, _鄉鎮市區, _街道地址);
}
}
public string
{
get
{
return string.Format("[{0}]{1}{2}", TXT, , );
}
}
private static DAC_BCLS BCLSDao = null;
public string TXT
{
get
{
if (BCLSDao == null)
BCLSDao = new DAC_BCLS();
string[] arr = DAC.GetString().Split(',');
string result = "";
foreach (string s in arr)
{
if (s != null && s.Length > 0)
result += BCLSDao.Get類別名稱("授課區域", s) + "";
}
if (result.Length > 0)
result = result.Remove(result.Length - 1);
return result;
}
}
public double { get; set; }
public double 滿 { get; set; }
public int { get; set; }
public string { get { return $"T{編號:0000}"; } }
}
}