chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,278 @@
|
||||
//
|
||||
// 這個檔案是 火車票價 資料表的資料存取類別 檔案二
|
||||
// 您可以修改這個檔案,加入您自訂的屬性與方法
|
||||
//
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using WebLib;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
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 NameValueList 查詢版本號List()
|
||||
{
|
||||
NameValueList result = new NameValueList();
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
|
||||
// SQL 查詢:取得所有不同的版本、生效日期、以及該版本最後的建檔和修改日期
|
||||
cmdSelect.CommandText = $@"
|
||||
select
|
||||
版本號,
|
||||
max(生效日期) as 生效日期,
|
||||
max(DB_CRDAT) as 建檔日期,
|
||||
max(DB_TRDAT) as 修改日期
|
||||
from {_tableName}
|
||||
group by 版本號
|
||||
order by 版本號 desc";
|
||||
|
||||
var dt = Select(cmdSelect);
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
int versionId = DAC.GetInt32(row["版本號"]);
|
||||
DateTime effectiveDate = DAC.GetDateTime(row["生效日期"]);
|
||||
|
||||
// 取得修改日期,如果沒有則使用建檔日期
|
||||
DateTime modifyDate = row["修改日期"] != DBNull.Value
|
||||
? DAC.GetDateTime(row["修改日期"])
|
||||
: DAC.GetDateTime(row["建檔日期"]);
|
||||
|
||||
string displayText = $"第 {versionId} 版 - 生效日期 {effectiveDate:yyyy-MM-dd} - 修改時間 {modifyDate:yyyy-MM-dd HH:mm:ss}";
|
||||
result.Add(displayText, versionId.ToString());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int 查詢版本號(DateTime? date)
|
||||
{
|
||||
if (!date.HasValue)
|
||||
{
|
||||
date = PublicVariable.TaiwanNow;
|
||||
}
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
cmdSelect.CommandText = $"select top 1 版本號 from {_tableName} where 生效日期 < @生效日期 order by 生效日期 desc";
|
||||
AddParam(cmdSelect, "生效日期", date.Value);
|
||||
if (ExecuteScalar<int>(cmdSelect, out int value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public NameValueList 查詢起站(string key)
|
||||
{
|
||||
var 版本號 = 查詢版本號(null);
|
||||
|
||||
NameValueList result = new NameValueList();
|
||||
IDataList list = result as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
var sql = $"select distinct 起站 Name, 起站 Value from {_tableName} where 版本號=@版本號 ";
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
sql += " and 起站 like @起站 ";
|
||||
AddParam(cmdSelect, "起站", $"%{key}%");
|
||||
}
|
||||
AddParam(cmdSelect, "版本號", 版本號);
|
||||
cmdSelect.CommandText = sql + " order by 起站";
|
||||
Select(cmdSelect, ref list);
|
||||
return result;
|
||||
}
|
||||
|
||||
public NameValueList 查詢迄站(string key)
|
||||
{
|
||||
var 版本號 = 查詢版本號(null);
|
||||
|
||||
NameValueList result = new NameValueList();
|
||||
IDataList list = result as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
var sql = $"select distinct 迄站 Name, 迄站 Value from {_tableName} where 版本號=@版本號 ";
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
sql += " and 迄站 like @迄站 ";
|
||||
AddParam(cmdSelect, "迄站", $"%{key}%");
|
||||
}
|
||||
AddParam(cmdSelect, "版本號", 版本號);
|
||||
cmdSelect.CommandText = sql + " order by 迄站";
|
||||
Select(cmdSelect, ref list);
|
||||
return result;
|
||||
}
|
||||
|
||||
public int 查詢票價(string 起站, string 迄站)
|
||||
{
|
||||
var 版本號 = 查詢版本號(null);
|
||||
|
||||
DbCommand cmdSelect = NewCommand($"select 票價 from {_tableName} where 版本號=@版本號 and 起站=@起站 and 迄站=@迄站");
|
||||
AddParam(cmdSelect, "版本號", 版本號);
|
||||
AddParam(cmdSelect, "起站", 起站);
|
||||
AddParam(cmdSelect, "迄站", 迄站);
|
||||
if (ExecuteScalar<int>(cmdSelect, out int value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 給查詢畫面用的 Select 方法
|
||||
///</summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public 火車票價List 查詢票價表(int? 版本號)
|
||||
{
|
||||
火車票價List result = new 火車票價List();
|
||||
IDataList list = result as IDataList;
|
||||
DbCommand cmdSelect = NewCommand();
|
||||
cmdSelect.CommandText =
|
||||
@"select A.*, B.站碼 起站站碼, C.站碼 迄站站碼
|
||||
from 火車票價 A
|
||||
join 火車站 B on A.起站=B.站名
|
||||
join 火車站 C on A.迄站=C.站名
|
||||
where A.版本號=@版本號
|
||||
order by 起站站碼, 迄站站碼";
|
||||
AddParam(cmdSelect, "版本號", 版本號);
|
||||
Select(cmdSelect, ref list);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///火車票價 資料集合類別
|
||||
///</summary>
|
||||
public partial class 火車票價List : List<火車票價Item>
|
||||
{
|
||||
// 有另外加上去的屬性及方法,請加在這裡
|
||||
}
|
||||
|
||||
///<summary>
|
||||
///火車票價 資料紀錄類別
|
||||
///</summary>
|
||||
public partial class 火車票價Item
|
||||
{
|
||||
// 有另外加上去的屬性及方法,請加在這裡
|
||||
public string 起站站碼 { get; set; }
|
||||
public string 迄站站碼 { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user