348 lines
11 KiB
C#
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 場地
|
|
{
|
|
// 有另外加上去的屬性及方法,請加在這裡
|
|
}
|
|
}
|