924 lines
31 KiB
C#
924 lines
31 KiB
C#
//
|
|
// 這個檔案是 SignUp 資料表的資料存取類別 檔案一
|
|
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
|
|
//
|
|
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 報到系統
|
|
{
|
|
///<summary>
|
|
/// SignUp 資料存取類別
|
|
///</ summary>
|
|
[DataObject]
|
|
public partial class DAC_SignUp : WebLib.DAC
|
|
{
|
|
private const string _tableName = "[SignUp]";
|
|
private const string _allFields = "[ID], [CourseID], [SeqNo], [Name], [Mobile], [IDNumber], [QRCode], [SignUpType], [CheckInTime], [CheckOutTime], [IDType], [MealType], [Email], [Gender], [LossJobTimes], [AgreementStatus], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]";
|
|
private string _orderBy = "[ID]";
|
|
private string _select = "select " + _allFields;
|
|
private string _insert = "[CourseID], [SeqNo], [Name], [Mobile], [IDNumber], [QRCode], [SignUpType], [CheckInTime], [CheckOutTime], [IDType], [MealType], [Email], [Gender], [LossJobTimes], [AgreementStatus], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]";
|
|
private string _insertBak = "[ID], [CourseID], [SeqNo], [Name], [Mobile], [IDNumber], [QRCode], [SignUpType], [CheckInTime], [CheckOutTime], [IDType], [MealType], [Email], [Gender], [LossJobTimes], [AgreementStatus], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR], [DB_TRMOD]";
|
|
private string _insertValue = "@CourseID, @SeqNo, @Name, @Mobile, @IDNumber, @QRCode, @SignUpType, @CheckInTime, @CheckOutTime, @IDType, @MealType, @Email, @Gender, @LossJobTimes, @AgreementStatus, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
|
|
private string _insertBakValue = "@ID, @CourseID, @SeqNo, @Name, @Mobile, @IDNumber, @QRCode, @SignUpType, @CheckInTime, @CheckOutTime, @IDType, @MealType, @Email, @Gender, @LossJobTimes, @AgreementStatus, @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 [ID] ";
|
|
|
|
public const string OrderBy_1 = "[CourseID]";
|
|
public const string OrderBy_2 = "[Name]";
|
|
public const string OrderBy_3 = "[Mobile]";
|
|
|
|
public DAC_SignUp()
|
|
: base()
|
|
{
|
|
}
|
|
|
|
public DAC_SignUp(DbConnection conn)
|
|
: base(conn)
|
|
{
|
|
}
|
|
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public SignUpList SelectAll(string orderBy = "")
|
|
{
|
|
SignUpList result = new SignUpList();
|
|
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 SignUpList SelectAllPage(int startRowIndex, int maximumRows, string orderBy = "")
|
|
{
|
|
SignUpList result = new SignUpList();
|
|
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 SignUpList SelectOne(int ID)
|
|
{
|
|
SignUpList result = new SignUpList();
|
|
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;
|
|
}
|
|
|
|
///<summary>
|
|
/// 給查詢畫面用的增加 Where 條件的方法
|
|
///</summary>
|
|
private void AddWhere(DbCommand cmdSelect, ref bool noInput, int? CourseID, int? SeqNo, string Name, string Mobile, string QRCode)
|
|
{
|
|
if (CourseID != null)
|
|
{
|
|
noInput = false;
|
|
cmdSelect.CommandText += " and CourseID = @CourseID ";
|
|
AddParam(cmdSelect, "CourseID", CourseID);
|
|
}
|
|
|
|
if (SeqNo != null)
|
|
{
|
|
noInput = false;
|
|
cmdSelect.CommandText += " and SeqNo = @SeqNo ";
|
|
AddParam(cmdSelect, "SeqNo", SeqNo);
|
|
}
|
|
|
|
if (Name != null && Name.Length > 0)
|
|
{
|
|
noInput = false;
|
|
cmdSelect.CommandText += " and Name like @Name ";
|
|
AddParam(cmdSelect, "Name", "%" + Name + "%");
|
|
}
|
|
|
|
if (Mobile != null && Mobile.Length > 0)
|
|
{
|
|
noInput = false;
|
|
cmdSelect.CommandText += " and Mobile like @Mobile ";
|
|
AddParam(cmdSelect, "Mobile", "%" + Mobile + "%");
|
|
}
|
|
|
|
if (QRCode != null && QRCode.Length > 0)
|
|
{
|
|
noInput = false;
|
|
cmdSelect.CommandText += " and QRCode like @QRCode ";
|
|
AddParam(cmdSelect, "QRCode", "%" + QRCode + "%");
|
|
}
|
|
|
|
}
|
|
|
|
///<summary>
|
|
/// 給查詢畫面用的 Select 方法
|
|
///</summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public SignUpList Select(bool noInputReturnAll, int? CourseID, int? SeqNo, string Name, string Mobile, string QRCode, string orderBy = "")
|
|
{
|
|
SignUpList result = new SignUpList();
|
|
bool noInput = true;
|
|
IDataList list = result as IDataList;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = _select + _from + _where;
|
|
AddWhere(cmdSelect, ref noInput, CourseID, SeqNo, Name, Mobile, QRCode);
|
|
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, int? CourseID, int? SeqNo, string Name, string Mobile, string QRCode, string orderBy = "")
|
|
{
|
|
bool noInput = true;
|
|
DbCommand cmdSelect = NewCommand();
|
|
cmdSelect.CommandText = "select count(1) " + _from + _where;
|
|
AddWhere(cmdSelect, ref noInput, CourseID, SeqNo, Name, Mobile, QRCode);
|
|
|
|
if (!noInputReturnAll && noInput)
|
|
return 0;
|
|
|
|
int i;
|
|
ExecuteScalar(cmdSelect, out i);
|
|
return i;
|
|
}
|
|
|
|
///<summary>
|
|
/// 給查詢畫面用的 SelectPage 方法
|
|
///</summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public SignUpList SelectPage(bool noInputReturnAll, int startRowIndex, int maximumRows, int? CourseID, int? SeqNo, string Name, string Mobile, string QRCode, string orderBy = "")
|
|
{
|
|
SignUpList result = new SignUpList();
|
|
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, CourseID, SeqNo, Name, Mobile, QRCode);
|
|
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 SignUpItem InsertOne(SignUpItem value)
|
|
{
|
|
using (TransactionScope ts = DAC.NewTransactionScope())
|
|
{
|
|
try
|
|
{
|
|
if (!BeforeInsertOne(value))
|
|
return value;
|
|
DbCommand cmdInsert = NewCommand();
|
|
cmdInsert.CommandText =
|
|
"insert into [SignUp]"
|
|
+ " (" + _insert + ")"
|
|
+ "values "
|
|
+ " (" + _insertValue + ");" + "select @@identity"
|
|
;
|
|
AddParam(cmdInsert, "CourseID", value.CourseID);
|
|
AddParam(cmdInsert, "SeqNo", value.SeqNo);
|
|
AddParam(cmdInsert, "Name", value.Name);
|
|
AddParam(cmdInsert, "Mobile", value.Mobile);
|
|
AddParam(cmdInsert, "IDNumber", value.IDNumber);
|
|
AddParam(cmdInsert, "QRCode", value.QRCode);
|
|
AddParam(cmdInsert, "SignUpType", value.SignUpType);
|
|
AddParam(cmdInsert, "CheckInTime", value.CheckInTime);
|
|
AddParam(cmdInsert, "CheckOutTime", value.CheckOutTime);
|
|
AddParam(cmdInsert, "IDType", value.IDType);
|
|
AddParam(cmdInsert, "MealType", value.MealType);
|
|
AddParam(cmdInsert, "Email", value.Email);
|
|
AddParam(cmdInsert, "Gender", value.Gender);
|
|
AddParam(cmdInsert, "LossJobTimes", value.LossJobTimes);
|
|
AddParam(cmdInsert, "AgreementStatus", value.AgreementStatus);
|
|
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.ID = newId;
|
|
AfterInsertOne(value);
|
|
ts.Complete();
|
|
}
|
|
catch (Exception error)
|
|
{
|
|
bool handled;
|
|
OnInsertOneError(error, out handled);
|
|
if(!handled)
|
|
throw error;
|
|
}
|
|
return value;
|
|
}
|
|
}
|
|
|
|
[DataObjectMethod(DataObjectMethodType.Update)]
|
|
public SignUpItem UpdateOne(SignUpItem value)
|
|
{
|
|
using (TransactionScope ts = DAC.NewTransactionScope())
|
|
{
|
|
try
|
|
{
|
|
if (!BeforeUpdateOne(value))
|
|
return value;
|
|
|
|
SignUpList oldValues = SelectOne(value.ID);
|
|
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
|
|
{
|
|
throw new DBConcurrencyException("在更新 \"SignUp\" 資料表時發生並行例外:找不到要更新的資料列");
|
|
}
|
|
else
|
|
{
|
|
DoBackup(oldValues[0], "UPDATE");
|
|
}
|
|
|
|
DbCommand cmdUpdate = NewCommand();
|
|
cmdUpdate.CommandText =
|
|
@"update [SignUp]
|
|
set
|
|
[CourseID] = @CourseID ,
|
|
[SeqNo] = @SeqNo ,
|
|
[Name] = @Name ,
|
|
[Mobile] = @Mobile ,
|
|
[IDNumber] = @IDNumber ,
|
|
[QRCode] = @QRCode ,
|
|
[SignUpType] = @SignUpType ,
|
|
[CheckInTime] = @CheckInTime ,
|
|
[CheckOutTime] = @CheckOutTime ,
|
|
[IDType] = @IDType ,
|
|
[MealType] = @MealType ,
|
|
[Email] = @Email ,
|
|
[Gender] = @Gender ,
|
|
[LossJobTimes] = @LossJobTimes ,
|
|
[AgreementStatus] = @AgreementStatus ,
|
|
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, "CourseID", value.CourseID);
|
|
AddParam(cmdUpdate, "SeqNo", value.SeqNo);
|
|
AddParam(cmdUpdate, "Name", value.Name);
|
|
AddParam(cmdUpdate, "Mobile", value.Mobile);
|
|
AddParam(cmdUpdate, "IDNumber", value.IDNumber);
|
|
AddParam(cmdUpdate, "QRCode", value.QRCode);
|
|
AddParam(cmdUpdate, "SignUpType", value.SignUpType);
|
|
AddParam(cmdUpdate, "CheckInTime", value.CheckInTime);
|
|
AddParam(cmdUpdate, "CheckOutTime", value.CheckOutTime);
|
|
AddParam(cmdUpdate, "IDType", value.IDType);
|
|
AddParam(cmdUpdate, "MealType", value.MealType);
|
|
AddParam(cmdUpdate, "Email", value.Email);
|
|
AddParam(cmdUpdate, "Gender", value.Gender);
|
|
AddParam(cmdUpdate, "LossJobTimes", value.LossJobTimes);
|
|
AddParam(cmdUpdate, "AgreementStatus", value.AgreementStatus);
|
|
AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now);
|
|
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
|
|
AddParam(cmdUpdate, "original_ID", value.ID);
|
|
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 SignUpItem UpdateOne(SignUpItem value, SignUpItem original_value)
|
|
{
|
|
using (TransactionScope ts = DAC.NewTransactionScope())
|
|
{
|
|
try
|
|
{
|
|
if (!BeforeUpdateOne(value, original_value))
|
|
return value;
|
|
|
|
SignUpList oldValues = SelectOne(original_value.ID);
|
|
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
|
|
{
|
|
throw new DBConcurrencyException("在更新 \"SignUp\" 資料表時發生並行例外:找不到要更新的資料列");
|
|
}
|
|
else
|
|
{
|
|
DoBackup(oldValues[0], "UPDATE");
|
|
}
|
|
|
|
DbCommand cmdUpdate = NewCommand();
|
|
cmdUpdate.CommandText =
|
|
@"update [SignUp]
|
|
set
|
|
[CourseID] = @CourseID ,
|
|
[SeqNo] = @SeqNo ,
|
|
[Name] = @Name ,
|
|
[Mobile] = @Mobile ,
|
|
[IDNumber] = @IDNumber ,
|
|
[QRCode] = @QRCode ,
|
|
[SignUpType] = @SignUpType ,
|
|
[CheckInTime] = @CheckInTime ,
|
|
[CheckOutTime] = @CheckOutTime ,
|
|
[IDType] = @IDType ,
|
|
[MealType] = @MealType ,
|
|
[Email] = @Email ,
|
|
[Gender] = @Gender ,
|
|
[LossJobTimes] = @LossJobTimes ,
|
|
[AgreementStatus] = @AgreementStatus ,
|
|
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, "CourseID", value.CourseID);
|
|
AddParam(cmdUpdate, "SeqNo", value.SeqNo);
|
|
AddParam(cmdUpdate, "Name", value.Name);
|
|
AddParam(cmdUpdate, "Mobile", value.Mobile);
|
|
AddParam(cmdUpdate, "IDNumber", value.IDNumber);
|
|
AddParam(cmdUpdate, "QRCode", value.QRCode);
|
|
AddParam(cmdUpdate, "SignUpType", value.SignUpType);
|
|
AddParam(cmdUpdate, "CheckInTime", value.CheckInTime);
|
|
AddParam(cmdUpdate, "CheckOutTime", value.CheckOutTime);
|
|
AddParam(cmdUpdate, "IDType", value.IDType);
|
|
AddParam(cmdUpdate, "MealType", value.MealType);
|
|
AddParam(cmdUpdate, "Email", value.Email);
|
|
AddParam(cmdUpdate, "Gender", value.Gender);
|
|
AddParam(cmdUpdate, "LossJobTimes", value.LossJobTimes);
|
|
AddParam(cmdUpdate, "AgreementStatus", value.AgreementStatus);
|
|
AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now);
|
|
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
|
|
AddParam(cmdUpdate, "original_ID", original_value.ID);
|
|
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 ID, int DB_APPNO)
|
|
{
|
|
using (TransactionScope ts = DAC.NewTransactionScope())
|
|
{
|
|
try
|
|
{
|
|
if (!BeforeDeleteOne(ID, DB_APPNO))
|
|
return -1;
|
|
|
|
SignUpList oldValues = SelectOne(ID);
|
|
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
|
|
{
|
|
throw new DBConcurrencyException("在刪除 \"SignUp\" 資料表時發生並行例外:找不到要刪除的資料列");
|
|
}
|
|
else
|
|
{
|
|
DoBackup(oldValues[0], "DELETE");
|
|
}
|
|
|
|
DbCommand cmdDelete = NewCommand();
|
|
cmdDelete.CommandText =
|
|
@"delete from [SignUp]
|
|
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(SignUpItem value)
|
|
{
|
|
using (TransactionScope ts = DAC.NewTransactionScope())
|
|
{
|
|
try
|
|
{
|
|
if (!BeforeDeleteOne(value))
|
|
return -1;
|
|
|
|
SignUpList oldValues = SelectOne(value.ID);
|
|
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
|
|
{
|
|
throw new DBConcurrencyException("在刪除 \"SignUp\" 資料表時發生並行例外:找不到要刪除的資料列");
|
|
}
|
|
else
|
|
{
|
|
DoBackup(oldValues[0], "DELETE");
|
|
}
|
|
|
|
DbCommand cmdDelete = NewCommand();
|
|
cmdDelete.CommandText =
|
|
@"delete from [SignUp]
|
|
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;
|
|
}
|
|
|
|
public void DoBackup(SignUpItem value, string updateMode)
|
|
{
|
|
DbCommand cmdBak = NewCommand();
|
|
cmdBak.CommandText =
|
|
"insert into [SignUp_BAK]"
|
|
+ " (" + _insertBak + ")"
|
|
+ "values "
|
|
+ " (" + _insertBakValue + ");"
|
|
;
|
|
AddParam(cmdBak, "ID", value.ID);
|
|
AddParam(cmdBak, "CourseID", value.CourseID);
|
|
AddParam(cmdBak, "SeqNo", value.SeqNo);
|
|
AddParam(cmdBak, "Name", value.Name);
|
|
AddParam(cmdBak, "Mobile", value.Mobile);
|
|
AddParam(cmdBak, "IDNumber", value.IDNumber);
|
|
AddParam(cmdBak, "QRCode", value.QRCode);
|
|
AddParam(cmdBak, "SignUpType", value.SignUpType);
|
|
AddParam(cmdBak, "CheckInTime", value.CheckInTime);
|
|
AddParam(cmdBak, "CheckOutTime", value.CheckOutTime);
|
|
AddParam(cmdBak, "IDType", value.IDType);
|
|
AddParam(cmdBak, "MealType", value.MealType);
|
|
AddParam(cmdBak, "Email", value.Email);
|
|
AddParam(cmdBak, "Gender", value.Gender);
|
|
AddParam(cmdBak, "LossJobTimes", value.LossJobTimes);
|
|
AddParam(cmdBak, "AgreementStatus", value.AgreementStatus);
|
|
AddParam(cmdBak, "DB_APPNO", value.DB_APPNO);
|
|
AddParam(cmdBak, "DB_CRDAT", value.DB_CRDAT);
|
|
AddParam(cmdBak, "DB_CRUSR", value.DB_CRUSR);
|
|
AddParam(cmdBak, "DB_TRDAT", DateTime.Now);
|
|
AddParam(cmdBak, "DB_TRUSR", CurrentUserId);
|
|
AddParam(cmdBak, "DB_TRMOD", updateMode);
|
|
ExecuteNonQuery(cmdBak);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
///<summary>
|
|
///SignUp 資料集合類別
|
|
///</summary>
|
|
[Serializable]
|
|
public partial class SignUpList : List<SignUpItem>, IDataList
|
|
{
|
|
public void Fill(DbDataReader reader)
|
|
{
|
|
DAC.FillData<SignUpItem>(reader, this);
|
|
}
|
|
}
|
|
|
|
|
|
///<summary>
|
|
/// SignUp 資料紀錄類別
|
|
///</summary>
|
|
[Serializable]
|
|
public partial class SignUpItem : DataItemBase
|
|
{
|
|
private int _ID;
|
|
private int _CourseID;
|
|
private int _SeqNo;
|
|
private string _Name;
|
|
private string _Mobile;
|
|
private string _IDNumber;
|
|
private string _QRCode;
|
|
private string _SignUpType;
|
|
private string _CheckInTime;
|
|
private string _CheckOutTime;
|
|
private string _IDType;
|
|
private string _MealType;
|
|
private string _Email;
|
|
private string _Gender;
|
|
private int? _LossJobTimes;
|
|
private string _AgreementStatus;
|
|
|
|
#region 資料欄位
|
|
///<summary>
|
|
/// 流水號
|
|
///</summary>
|
|
[DataObjectField(true, false, false)]
|
|
public int ID
|
|
{
|
|
get
|
|
{
|
|
return _ID;
|
|
}
|
|
set
|
|
{
|
|
if (value != _ID)
|
|
{
|
|
_ID = value;
|
|
OnPropertyChanged("ID");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 課程ID
|
|
///</summary>
|
|
[DataObjectField(false, false, false)]
|
|
public int CourseID
|
|
{
|
|
get
|
|
{
|
|
return _CourseID;
|
|
}
|
|
set
|
|
{
|
|
if (value != _CourseID)
|
|
{
|
|
_CourseID = value;
|
|
OnPropertyChanged("CourseID");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 序號
|
|
///</summary>
|
|
[DataObjectField(false, false, false)]
|
|
public int SeqNo
|
|
{
|
|
get
|
|
{
|
|
return _SeqNo;
|
|
}
|
|
set
|
|
{
|
|
if (value != _SeqNo)
|
|
{
|
|
_SeqNo = value;
|
|
OnPropertyChanged("SeqNo");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 學員姓名
|
|
///</summary>
|
|
[DataObjectField(false, false, false, 100)]
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return _Name;
|
|
}
|
|
set
|
|
{
|
|
if (value != _Name)
|
|
{
|
|
_Name = value;
|
|
OnPropertyChanged("Name");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 手機號
|
|
///</summary>
|
|
[DataObjectField(false, false, false, 20)]
|
|
public string Mobile
|
|
{
|
|
get
|
|
{
|
|
return _Mobile;
|
|
}
|
|
set
|
|
{
|
|
if (value != _Mobile)
|
|
{
|
|
_Mobile = value;
|
|
OnPropertyChanged("Mobile");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 身分證字號
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 20)]
|
|
public string IDNumber
|
|
{
|
|
get
|
|
{
|
|
return _IDNumber;
|
|
}
|
|
set
|
|
{
|
|
if (value != _IDNumber)
|
|
{
|
|
_IDNumber = value;
|
|
OnPropertyChanged("IDNumber");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// QRCode內容
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 100)]
|
|
public string QRCode
|
|
{
|
|
get
|
|
{
|
|
return _QRCode;
|
|
}
|
|
set
|
|
{
|
|
if (value != _QRCode)
|
|
{
|
|
_QRCode = value;
|
|
OnPropertyChanged("QRCode");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 報名方式 (預約/現場)
|
|
///</summary>
|
|
[DataObjectField(false, false, false, 10)]
|
|
public string SignUpType
|
|
{
|
|
get
|
|
{
|
|
return _SignUpType;
|
|
}
|
|
set
|
|
{
|
|
if (value != _SignUpType)
|
|
{
|
|
_SignUpType = value;
|
|
OnPropertyChanged("SignUpType");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 簽到時間
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 20)]
|
|
public string CheckInTime
|
|
{
|
|
get
|
|
{
|
|
return _CheckInTime;
|
|
}
|
|
set
|
|
{
|
|
if (value != _CheckInTime)
|
|
{
|
|
_CheckInTime = value;
|
|
OnPropertyChanged("CheckInTime");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 簽退時間
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 20)]
|
|
public string CheckOutTime
|
|
{
|
|
get
|
|
{
|
|
return _CheckOutTime;
|
|
}
|
|
set
|
|
{
|
|
if (value != _CheckOutTime)
|
|
{
|
|
_CheckOutTime = value;
|
|
OnPropertyChanged("CheckOutTime");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 身分別
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 20)]
|
|
public string IDType
|
|
{
|
|
get
|
|
{
|
|
return _IDType;
|
|
}
|
|
set
|
|
{
|
|
if (value != _IDType)
|
|
{
|
|
_IDType = value;
|
|
OnPropertyChanged("IDType");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 餐點別
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 20)]
|
|
public string MealType
|
|
{
|
|
get
|
|
{
|
|
return _MealType;
|
|
}
|
|
set
|
|
{
|
|
if (value != _MealType)
|
|
{
|
|
_MealType = value;
|
|
OnPropertyChanged("MealType");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 電子郵件
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 100)]
|
|
public string Email
|
|
{
|
|
get
|
|
{
|
|
return _Email;
|
|
}
|
|
set
|
|
{
|
|
if (value != _Email)
|
|
{
|
|
_Email = value;
|
|
OnPropertyChanged("Email");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 性別
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 10)]
|
|
public string Gender
|
|
{
|
|
get
|
|
{
|
|
return _Gender;
|
|
}
|
|
set
|
|
{
|
|
if (value != _Gender)
|
|
{
|
|
_Gender = value;
|
|
OnPropertyChanged("Gender");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 失業給付認定次數
|
|
///</summary>
|
|
[DataObjectField(false, false, true)]
|
|
public int? LossJobTimes
|
|
{
|
|
get
|
|
{
|
|
return _LossJobTimes;
|
|
}
|
|
set
|
|
{
|
|
if (value != _LossJobTimes)
|
|
{
|
|
_LossJobTimes = value;
|
|
OnPropertyChanged("LossJobTimes");
|
|
}
|
|
}
|
|
}
|
|
|
|
///<summary>
|
|
/// 同意確認事項狀態 (同意/不同意)
|
|
///</summary>
|
|
[DataObjectField(false, false, true, 10)]
|
|
public string AgreementStatus
|
|
{
|
|
get
|
|
{
|
|
return _AgreementStatus;
|
|
}
|
|
set
|
|
{
|
|
if (value != _AgreementStatus)
|
|
{
|
|
_AgreementStatus = value;
|
|
OnPropertyChanged("AgreementStatus");
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|