using System.Data;
|
|
namespace HotelPms.Share.Data;
|
|
public abstract class TableAccessBase : IDisposable
|
{
|
/// <summary>
|
/// 同期用
|
/// </summary>
|
public static object SyncRoot { get; set; } = new object();
|
|
/// <summary>
|
/// テーブル名
|
/// </summary>
|
public string TableName { get; set; } = string.Empty;
|
|
/// <summary>
|
/// 追加SQL
|
/// SourceFactoryより自動で生成可能
|
/// </summary>
|
public string InsertSql { get; set; } = string.Empty;
|
|
/// <summary>
|
/// 更新SQL
|
/// SourceFactoryより自動で生成可能
|
/// </summary>
|
public string UpdateSql { get; set; } = string.Empty;
|
|
public TableAccessBase(string tableName)
|
{
|
TableName = tableName;
|
}
|
|
public abstract System.Data.DataTable GetPopUpList(DataAccess access);
|
|
public abstract System.Data.DataTable GetPopUpList(DataAccess access, object[] key);
|
|
/// <summary> 項目値を返す
|
/// </summary>
|
/// <param name="msSqlNet"></param>
|
/// <param name="pHotelCode"></param>
|
/// <param name="field"></param>
|
/// <returns></returns>
|
public object GetFieldValue(DataAccess access, string field, string where)
|
{
|
return access.ExecuteScalar(string.Format("Select {1} From {0} {2}", TableName, field, where));
|
}
|
|
/// <summary> 複数項目値を返す
|
/// </summary>
|
/// <param name="msSqlNet"></param>
|
/// <param name="pHotelCode"></param>
|
/// <param name="fields">Name1,Name2,Name3…</param>
|
/// <returns></returns>
|
public DataTable GetFields(DataAccess access, string fields, string where)
|
{
|
return access.GetDataTable(string.Format("Select {1} From {0} {2}", TableName, fields, where));
|
}
|
|
/// <summary> 項目更新
|
/// </summary>
|
/// <param name="msSqlNet"></param>
|
/// <param name="pHotelCode"></param>
|
/// <param name="field"></param>
|
/// <returns></returns>
|
public bool SetFieldValue(DataAccess access, string field, string value, string where)
|
{
|
return access.ExecuteNonQuery(string.Format(" UPDATE {0} SET {1} = '{2}' {3}", TableName, field, value, where)) > 0;
|
}
|
|
public virtual void Dispose()
|
{
|
|
}
|
}
|