Files
thinkyu/branches/1150807/DAC/基本資料/DAC_場地2.cs
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

348 lines
11 KiB
C#

//
// 這個檔案是 場地 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
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 場地
{
// 有另外加上去的屬性及方法,請加在這裡
}
}