/// <summary> /// 施設名一覧取得 /// </summary> /// <returns>施設名一覧</returns> public List <FacilityNameInfo> GetFacilityNameInfo() { var facilityNameInfoList = new List <FacilityNameInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 施設id,施設名 from 施設テーブル"; var cmd = new NpgsqlCommand(sql, conn); var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { facilityNameInfoList.Add(new FacilityNameInfo( (short)dataReader.GetValue(0), (string)dataReader.GetValue(1))); } } return(facilityNameInfoList); }
/// <summary> /// データベースからユーザー情報を取得する /// </summary> /// <param name="inputID">入力されたユーザーID</param> /// <returns>取得したユーザー情報</returns> public UserInfo GetUserInfo(string inputID) { var userInfo = new UserInfo(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select ユーザーid,名前,パスワード,ユーザーマスタ.権限id,権限マスタ.権限名 from ユーザーマスタ inner join 権限マスタ on ユーザーマスタ.権限id = 権限マスタ.権限id where ユーザーid = :inputID and 削除フラグ = 0"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("inputID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["inputID"].Value = inputID; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { userInfo.UserID = (string)dataReader.GetValue(0); userInfo.UserName = (string)dataReader.GetValue(1); userInfo.Pass = (string)dataReader.GetValue(2); userInfo.AuthorityID = (int)(decimal)dataReader.GetValue(3); userInfo.AuthorityName = (string)dataReader.GetValue(4); } } return(userInfo); }
/// <summary> /// 一般ユーザー情報取得 /// </summary> /// <returns>一般ユーザー情報リスト</returns> public List <UserInfo> GetGeneralUserInfo() { var GeneralUserInfoList = new List <UserInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select ユーザーid,名前,パスワード,ユーザーマスタ.権限id,権限マスタ.権限名 from ユーザーマスタ inner join 権限マスタ on ユーザーマスタ.権限id = 権限マスタ.権限id where ユーザーマスタ.権限id = 0 and 削除フラグ = 0"; var cmd = new NpgsqlCommand(sql, conn); var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { GeneralUserInfoList.Add(new UserInfo() { UserID = (string)dataReader.GetValue(0), UserName = (string)dataReader.GetValue(1), Pass = (string)dataReader.GetValue(2), AuthorityID = (int)(decimal)dataReader.GetValue(3), AuthorityName = (string)dataReader.GetValue(4) }); } } return(GeneralUserInfoList); }
/// <summary> /// 勤務時間情報更新 /// </summary> /// <param name="userID">ログインユーザーのユーザーID</param> /// <param name="attendanceTimeInfoList">勤務時間情報リスト</param> public void UpdateAttendanceTimeInfo(string userID, List <AttendanceTimeInfo> attendanceTimeInfoList) { //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); using (var transaction = conn.BeginTransaction()) { try { //更新する年および月と一致する勤務時間情報を削除 string sql = @"delete from 勤怠テーブル where ユーザーid = :userID and extract(year from 勤務開始時間) = :year and extract(month from 勤務開始時間) = :month"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; cmd.Parameters.Add(new NpgsqlParameter("year", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters["year"].Value = attendanceTimeInfoList[0].StartTime.Year; cmd.Parameters.Add(new NpgsqlParameter("month", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters["month"].Value = attendanceTimeInfoList[0].StartTime.Month; cmd.ExecuteNonQuery(); //勤務時間情報をデータベースに追加 foreach (var attendanceTime in attendanceTimeInfoList) { sql = @"insert into 勤怠テーブル values(:userID, :attendanceTime.StartTime, :attendanceTime.EndTime, :attendanceTime.BreakTime)"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; cmd.Parameters.Add(new NpgsqlParameter("attendanceTime.StartTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["attendanceTime.StartTime"].Value = attendanceTime.StartTime; cmd.Parameters.Add(new NpgsqlParameter("attendanceTime.EndTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["attendanceTime.EndTime"].Value = attendanceTime.EndTime; cmd.Parameters.Add(new NpgsqlParameter("attendanceTime.BreakTime", NpgsqlTypes.NpgsqlDbType.Numeric)); cmd.Parameters["attendanceTime.BreakTime"].Value = attendanceTime.BreakTime; cmd.ExecuteNonQuery(); } transaction.Commit(); } catch (NpgsqlException) { transaction.Rollback(); throw; } } } }
/// <summary> /// メール送信 /// </summary> /// <param name="userID">ログインユーザーのユーザーID</param> /// <param name="mailInfo">送信するメールの情報</param> public void SendMail(string userID, List <MailInfo> mailInfoList) { //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); using (var transaction = conn.BeginTransaction()) { try { foreach (var mailInfo in mailInfoList) { string sql = @"insert into メールテーブル values (:senderUserID,:receiverUserID,:Subject,:Message)"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("senderUserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["senderUserID"].Value = userID; cmd.Parameters.Add(new NpgsqlParameter("receiverUserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["receiverUserID"].Value = mailInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("Subject", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["Subject"].Value = mailInfo.Subject; cmd.Parameters.Add(new NpgsqlParameter("Message", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["Message"].Value = mailInfo.Message; cmd.ExecuteNonQuery(); } transaction.Commit(); } catch (NpgsqlException) { transaction.Rollback(); throw; } } } }
/// <summary> /// ユーザー追加 /// </summary> /// <param name="userInfoList">追加するユーザーの情報</param> public void InsertUser(List <UserInfo> userInfoList) { //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); using (var transaction = conn.BeginTransaction()) { try { foreach (var userInfo in userInfoList) { string sql = @"insert into ユーザーマスタ values (:UserID,:UserName,:Pass,:AuthorityID,0)"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = userInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("UserName", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["UserName"].Value = userInfo.UserName; cmd.Parameters.Add(new NpgsqlParameter("Pass", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["Pass"].Value = userInfo.Pass; cmd.Parameters.Add(new NpgsqlParameter("AuthorityID", NpgsqlTypes.NpgsqlDbType.Numeric)); cmd.Parameters["AuthorityID"].Value = userInfo.AuthorityID; cmd.ExecuteNonQuery(); } transaction.Commit(); } catch (NpgsqlException) { transaction.Rollback(); throw; } } } }
/// <summary> /// データベースから勤務時間情報を取得 /// </summary> /// <param name="userID">ログインユーザーのユーザーID</param> /// <param name="attendanceMonth">何月の情報を取得するか</param> /// <returns>勤務時間情報リスト</returns> public List <AttendanceTimeInfo> GetAttendanceTimeInfo(string userID, AttendanceMonth attendanceMonth) { var attendanceTimeInfoList = new List <AttendanceTimeInfo>(); //勤務時間情報 //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 勤務開始時間,勤務終了時間,休憩時間 from 勤怠テーブル where ユーザーid = :userID and extract(year from 勤務開始時間) = :DateTime.Now.Year and extract(month from 勤務開始時間) = :attendanceMonth order by 勤務開始時間"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; cmd.Parameters.Add(new NpgsqlParameter("attendanceMonth", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters["attendanceMonth"].Value = (int)attendanceMonth; cmd.Parameters.Add(new NpgsqlParameter("DateTime.Now.Year", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters["DateTime.Now.Year"].Value = DateTime.Now.Year; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { attendanceTimeInfoList.Add(new AttendanceTimeInfo( (DateTime)dataReader.GetValue(0), (DateTime)dataReader.GetValue(1), (int)(decimal)dataReader.GetValue(2))); } } return(attendanceTimeInfoList); }
/// <summary> /// ユーザー削除フラグ更新 /// </summary> /// <param name="userID">ユーザーID</param> /// <param name="deleteFlag">削除フラグ</param> public void UpdateUserDeleteFlag(string userID, int deleteFlag) { //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"update ユーザーマスタ set 削除フラグ = :deleteFlag where ユーザーid = :userID"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter(":deleteFlag", NpgsqlTypes.NpgsqlDbType.Numeric)); cmd.Parameters["deleteFlag"].Value = deleteFlag; cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; cmd.ExecuteNonQuery(); } }
/// <summary> /// ログインユーザーが送信したメールを取得 /// </summary> /// <param name="userID">ログインユーザーのユーザーID</param> /// <returns>メール情報</returns> public List <MailInfo> GetTransmittedMail(string userID) { var mailInfoList = new List <MailInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 受信者ユーザーid,名前,件名,メッセージ,メールテーブル.更新日時 from メールテーブル inner join ユーザーマスタ on メールテーブル.受信者ユーザーid = ユーザーマスタ.ユーザーid where 送信者ユーザーid = :userID"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { mailInfoList.Add(new MailInfo() { UserID = (string)dataReader.GetValue(0), UserName = (string)dataReader.GetValue(1), Subject = (string)dataReader.GetValue(2), Message = (string)dataReader.GetValue(3), AddedDate = (DateTime)dataReader.GetValue(4) }); } } return(mailInfoList); }
/// <summary> /// 全ユーザーの1週間分の予定を取得 /// </summary> /// <param name="firstDate">取得する予定のうち、最初の日付</param> /// <param name="lastDate">取得する予定のうち、最後の日付</param> /// <returns>予定リスト</returns> public List <ScheduleInfo> GetScheduleInfo(DateTime firstDate, DateTime lastDate) { var scheduleInfoList = new List <ScheduleInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 予定id,ユーザーid,予定内容,開始日時,終了日時 from 予定テーブル where exists (select 1 from ユーザーマスタ where 予定テーブル.ユーザーid = ユーザーマスタ.ユーザーid and 削除フラグ = 0) and cast(開始日時 as date) >= :firstDate.Date and cast(開始日時 as date) <= :lastDate.Date"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("firstDate.Date", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["firstDate.Date"].Value = firstDate.Date; cmd.Parameters.Add(new NpgsqlParameter("lastDate.Date", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["lastDate.Date"].Value = lastDate.Date; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { scheduleInfoList.Add(new ScheduleInfo( (short)dataReader.GetValue(0), (string)dataReader.GetValue(1), (string)dataReader.GetValue(2), (DateTime)dataReader.GetValue(3), (DateTime)dataReader.GetValue(4))); } } return(scheduleInfoList); }
/// <summary> /// ログインユーザーの登録済みの予定一覧を、本日以降の予定のもののみ取得する /// </summary> /// <param name="userID">ログインユーザーのユーザーID</param> /// <returns>登録済みの予定一覧</returns> public List <ScheduleInfo> GetRegisteredSchedule(string userID) { var registeredScheduleList = new List <ScheduleInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 予定id, ユーザーid, 予定内容, 開始日時, 終了日時 from 予定テーブル where ユーザーid = :userID and cast(開始日時 as date) >= :DateTime.Now.Date"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("userID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["userID"].Value = userID; cmd.Parameters.Add(new NpgsqlParameter("DateTime.Now.Date", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["DateTime.Now.Date"].Value = DateTime.Now.Date; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { registeredScheduleList.Add(new ScheduleInfo( (short)dataReader.GetValue(0), (string)dataReader.GetValue(1), (string)dataReader.GetValue(2), (DateTime)dataReader.GetValue(3), (DateTime)dataReader.GetValue(4))); } } return(registeredScheduleList); }
/// <summary> /// 施設利用情報取得 /// </summary> /// <param name="firstDate">取得する施設利用情報のうち、最初の日付</param> /// <param name="lastDate">取得する施設利用情報のうち、最後の日付</param> /// <returns>施設利用情報リスト</returns> public List <FacilityUsageInfo> GetFacilityUsageInfo(DateTime firstDate, DateTime lastDate) { var facilityUsageInfoList = new List <FacilityUsageInfo>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select 施設id,開始日時,終了日時 from 施設利用状況テーブル inner join 予定テーブル on 施設利用状況テーブル.予定id = 予定テーブル.予定id where cast(開始日時 as date) >= :firstDate.Date and cast(開始日時 as date) <= :lastDate.Date"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("firstDate.Date", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["firstDate.Date"].Value = firstDate.Date; cmd.Parameters.Add(new NpgsqlParameter("lastDate.Date", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["lastDate.Date"].Value = lastDate.Date; var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { facilityUsageInfoList.Add(new FacilityUsageInfo( (short)dataReader.GetValue(0), (DateTime)dataReader.GetValue(1), (DateTime)dataReader.GetValue(2))); } } return(facilityUsageInfoList); }
/// <summary> /// 予定の種類の一覧を取得 /// </summary> /// <returns>予定一覧</returns> public List <string> GetScheduleType() { var scheduleTypeList = new List <string>(); //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); string sql = @"select distinct 予定内容 from 予定テーブル"; var cmd = new NpgsqlCommand(sql, conn); var dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { scheduleTypeList.Add((string)dataReader.GetValue(0)); } } return(scheduleTypeList); }
/// <summary> /// 予定更新 /// </summary> /// <param name="scheduleRegistrationInfo">予定登録情報</param> /// <param name="scheduleUpdateType">更新種別</param> public void UpdateSchedule(ScheduleRegistrationInfo scheduleRegistrationInfo, ScheduleUpdateType scheduleUpdateType) { string sql; //実行するsql文 //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); //トランザクション開始 using (var transaction = conn.BeginTransaction()) { try { switch (scheduleUpdateType) { //新規予定追加の場合 case ScheduleUpdateType.Add: //予定情報を予定テーブルに追加 sql = @"insert into 予定テーブル(ユーザーid, 予定内容, 開始日時, 終了日時) values(:UserID, :ScheduleContents, :StartTime, :EndTime)"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = scheduleRegistrationInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("ScheduleContents", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["ScheduleContents"].Value = scheduleRegistrationInfo.ScheduleContents; cmd.Parameters.Add(new NpgsqlParameter("StartTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["StartTime"].Value = scheduleRegistrationInfo.StartTime; cmd.Parameters.Add(new NpgsqlParameter("EndTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["EndTime"].Value = scheduleRegistrationInfo.EndTime; cmd.ExecuteNonQuery(); //施設利用情報を施設利用状況テーブルに追加 sql = @"insert into 施設利用状況テーブル select :UserID, :FacilityID, 予定id from 予定テーブル where ユーザーid = :UserID and 開始日時 = :StartTime and 終了日時 = :EndTime"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = scheduleRegistrationInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("FacilityID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["FacilityID"].Value = scheduleRegistrationInfo.FacilityID; cmd.Parameters.Add(new NpgsqlParameter("StartTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["StartTime"].Value = scheduleRegistrationInfo.StartTime; cmd.Parameters.Add(new NpgsqlParameter("EndTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["EndTime"].Value = scheduleRegistrationInfo.EndTime; cmd.ExecuteNonQuery(); break; //予定編集の場合 case ScheduleUpdateType.Edit: //編集前のデータを予定テーブルから削除 sql = @"delete from 予定テーブル where 予定id = :ScheduleID"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("ScheduleID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["ScheduleID"].Value = scheduleRegistrationInfo.ScheduleID; cmd.ExecuteNonQuery(); //編集前のデータを施設利用状況テーブルテーブルから削除 sql = @"delete from 施設利用状況テーブル where 予定id = :ScheduleID"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("ScheduleID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["ScheduleID"].Value = scheduleRegistrationInfo.ScheduleID; cmd.ExecuteNonQuery(); //編集後のデータを予定テーブルに追加 sql = @"insert into 予定テーブル(ユーザーid, 予定内容, 開始日時, 終了日時) values(:UserID, :ScheduleContents, :StartTime, :EndTime)"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = scheduleRegistrationInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("ScheduleContents", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["ScheduleContents"].Value = scheduleRegistrationInfo.ScheduleContents; cmd.Parameters.Add(new NpgsqlParameter("StartTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["StartTime"].Value = scheduleRegistrationInfo.StartTime; cmd.Parameters.Add(new NpgsqlParameter("EndTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["EndTime"].Value = scheduleRegistrationInfo.EndTime; cmd.ExecuteNonQuery(); //編集後のデータを施設利用状況テーブルに追加 sql = @"insert into 施設利用状況テーブル select :UserID, :FacilityID, 予定id from 予定テーブル where ユーザーid = :UserID and 開始日時 = :StartTime and 終了日時 = :EndTime"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = scheduleRegistrationInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("FacilityID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["FacilityID"].Value = scheduleRegistrationInfo.FacilityID; cmd.Parameters.Add(new NpgsqlParameter("StartTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["StartTime"].Value = scheduleRegistrationInfo.StartTime; cmd.Parameters.Add(new NpgsqlParameter("EndTime", NpgsqlTypes.NpgsqlDbType.Timestamp)); cmd.Parameters["EndTime"].Value = scheduleRegistrationInfo.EndTime; cmd.ExecuteNonQuery(); break; //予定削除の場合 case ScheduleUpdateType.Delete: //データを予定テーブルから削除 sql = @"delete from 予定テーブル where 予定id = :ScheduleID"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("ScheduleID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["ScheduleID"].Value = scheduleRegistrationInfo.ScheduleID; cmd.ExecuteNonQuery(); //データを施設利用状況テーブルテーブルから削除 sql = @"delete from 施設利用状況テーブル where 予定id = :ScheduleID"; cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("ScheduleID", NpgsqlTypes.NpgsqlDbType.Smallint)); cmd.Parameters["ScheduleID"].Value = scheduleRegistrationInfo.ScheduleID; cmd.ExecuteNonQuery(); break; } transaction.Commit(); } catch (NpgsqlException) { transaction.Rollback(); throw; } } } }
/// <summary> /// ユーザー情報更新 /// </summary> /// <param name="userInfoList">ユーザー情報</param> public void UpdateUserInfo(List <UserInfo> userInfoList) { //データベースに接続するための文字列を取得 string connString = new CommonDBAccess().MakeAccessString(); using (var conn = new NpgsqlConnection(connString)) { conn.Open(); using (var transaction = conn.BeginTransaction()) { try { foreach (var userInfo in userInfoList) { //パスワードを更新しない場合 if (userInfo.Pass == "") { string sql = @"update ユーザーマスタ set 名前 = :UserName, 権限id = :AuthorityID where ユーザーid = :UserID"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = userInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("UserName", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserName"].Value = userInfo.UserName; cmd.Parameters.Add(new NpgsqlParameter("AuthorityID", NpgsqlTypes.NpgsqlDbType.Numeric)); cmd.Parameters["AuthorityID"].Value = userInfo.AuthorityID; cmd.ExecuteNonQuery(); } //パスワードを更新する場合 else { string sql = @"update ユーザーマスタ set 名前 = :UserName, 権限id = :AuthorityID, パスワード = :Pass where ユーザーid = :UserID"; var cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.Add(new NpgsqlParameter("UserID", NpgsqlTypes.NpgsqlDbType.Varchar)); cmd.Parameters["UserID"].Value = userInfo.UserID; cmd.Parameters.Add(new NpgsqlParameter("UserName", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["UserName"].Value = userInfo.UserName; cmd.Parameters.Add(new NpgsqlParameter("AuthorityID", NpgsqlTypes.NpgsqlDbType.Numeric)); cmd.Parameters["AuthorityID"].Value = userInfo.AuthorityID; cmd.Parameters.Add(new NpgsqlParameter("Pass", NpgsqlTypes.NpgsqlDbType.Text)); cmd.Parameters["Pass"].Value = userInfo.Pass; cmd.ExecuteNonQuery(); } } transaction.Commit(); } catch (NpgsqlException) { transaction.Rollback(); throw; } } } }