介面學習

来源:http://www.cnblogs.com/xiaz/archive/2017/11/27/7905551.html
-Advertisement-
Play Games

1 using System; 2 using System.Collections.Generic; 3 using System.Web; 4 using System.Web.Services; 5 using System.Data; 6 using Topevery.EOffice.Log ...


  1 using System;
  2 using System.Collections.Generic;
  3 using System.Web;
  4 using System.Web.Services;
  5 using System.Data;
  6 using Topevery.EOffice.Logic;
  7 using Topevery.EOffice.Entity;
  8 using System.Data.SqlClient;
  9 
 10 namespace Topevery.EOffice.Web.WebService
 11 {
 12     /// <summary>
 13     /// AttendanceMachineImport 的摘要說明
 14     /// </summary>
 15     [WebService(Namespace = "http://tempuri.org/")]
 16     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 17     [System.ComponentModel.ToolboxItem(false)]
 18     public class AttendanceMachineImport : System.Web.Services.WebService
 19     {
 20         /// <summary>
 21         /// 兩個列
 22         /// [DIN,員工編號][CLOCK,打卡時間]
 23         /// </summary>
 24         /// <param name="data"></param>
 25         /// <returns></returns>
 26         [WebMethod]
 27         public bool Import(DataTable data)
 28         {
 29 
 30             DataSet dsAttendanceData = new DataSet();
 31             using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["efDatabase"].ConnectionString))
 32             {
 33                 conn.Open();
 34                 using (SqlTransaction tran = conn.BeginTransaction())
 35                 {
 36                     foreach (DataRow dr in data.Rows)
 37                     {
 38                         string DIN = dr["DIN"].ToString();
 39                         DateTime Clock = (DateTime)dr["CLOCK"];
 40                         using (SqlCommand command = new SqlCommand("INSERT INTO T_EO_ATTENDANCE_MACHINE(C_DIN , C_CLOCK) VALUES (@DIN , @CLOCK);", conn, tran))
 41                         {
 42                             command.Parameters.Add(new SqlParameter("@DIN", DIN));
 43                             command.Parameters.Add(new SqlParameter("@CLOCK", Clock));
 44                             command.ExecuteNonQuery();
 45                         }
 46                     }
 47                     tran.Commit();
 48                 }
 49 
 50                 using (SqlDataAdapter command = new SqlDataAdapter("P_EO_PROCESS_ATTENDANCE_MACHINE", conn))
 51                 {
 52                     command.SelectCommand.CommandType = CommandType.StoredProcedure;
 53                     command.Fill(dsAttendanceData);
 54                 }
 55             }
 56 
 57             foreach (DataRow dr in dsAttendanceData.Tables[0].Rows)
 58             {
 59                 /*
 60                  C_USER_ID , C_DATE , C_CHECK_IN_DATE , C_CHECK_OUT_DATE
 61                  */
 62                 DateTime? _SignInDate = null; DateTime? _SignOutDate = null;
 63                 if (dr["C_CHECK_IN_DATE"] != DBNull.Value) { _SignInDate = (DateTime)dr["C_CHECK_IN_DATE"]; }
 64                 if (dr["C_CHECK_OUT_DATE"] != DBNull.Value) { _SignOutDate = (DateTime)dr["C_CHECK_OUT_DATE"]; }
 65                 EOAttendanceLogic.InsertStaffAttenceEx(new EOStaffAttence()
 66                 {
 67                     UserID = (Guid)dr["C_USER_ID"],
 68                     CheckDate = (DateTime)dr["C_DATE"],
 69                     SignInDate = _SignInDate,
 70                     SignOutDate = _SignOutDate
 71                 });
 72                 EOAvoidCheckLogic.ProcessAttendanceData((Guid)dr["C_USER_ID"], (DateTime)dr["C_DATE"]);
 73             }
 74 
 75             using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["efDatabase"].ConnectionString))
 76             {
 77                 conn.Open();
 78                 using (SqlTransaction tran = conn.BeginTransaction())
 79                 {
 80                     foreach (DataRow dr in data.Rows)
 81                     {
 82                         using (SqlCommand command = new SqlCommand("TRUNCATE TABLE T_EO_ATTENDANCE_MACHINE ;", conn, tran))
 83                         {
 84                             command.ExecuteNonQuery();
 85                         }
 86                     }
 87                     tran.Commit();
 88                 }
 89             }
 90             return true;
 91         }
 92 
 93         [WebMethod]
 94         public DateTime GetLastTime()
 95         {
 96             DateTime lastTime = DateTime.Now.AddDays(-1);
 97             string sql = @"
 98 select max(d) from(
 99 select max(a.c_sign_in_date) as d from t_eo_staff_attence_bak a 
100 inner join syn_ty_pmi_user u on a.c_user_id = u.user_id
101 where a.c_attence_type = 1
102 union all
103 select max(a.c_sign_out_date) from t_eo_staff_attence_bak a 
104 inner join syn_ty_pmi_user u on a.c_user_id = u.user_id
105 where a.c_attence_type = 1) a";
106 
107             using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["efDatabase"].ConnectionString))
108             {
109                 conn.Open();
110 
111                 using (SqlCommand command = new SqlCommand(sql, conn))
112                 {
113                     lastTime = (DateTime)command.ExecuteScalar();
114                 }
115             }
116 
117             return lastTime;
118         }
119 
120         Dictionary<string, Guid> _EoUserExtBuffer = null;
121         Dictionary<string, Guid> EoUserExtBuffer
122         {
123             get
124             {
125                 if (_EoUserExtBuffer == null)
126                 {
127                     _EoUserExtBuffer = new Dictionary<string, Guid>();
128                 }
129                 EOUserExtCollection eoUserExtColl = EOPersonalLogic.GetUserInfos();
130                 foreach (EOUserExt ext in eoUserExtColl)
131                 {
132 
133                     _EoUserExtBuffer.Add(ext.UserCode, ext.UserID);
134                 }
135 
136                 return _EoUserExtBuffer;
137             }
138         }
139        
140         
141         Guid GetUserId(string DIN)
142         {
143             if (EoUserExtBuffer.ContainsKey(DIN))
144             {
145                 return EoUserExtBuffer[DIN];
146             }
147             return Guid.Empty;
148         }
149     }
150 }
View Code

調用方式

1 TYEO.AttendanceMachineImport ser = new AttendanceMachineTool.TYEO.AttendanceMachineImport();
2             dtStart.Value = ser.GetLastTime();

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 正則表達式可以用來處理大量的文件和字元串,運維工作中過濾日記簡單高效,Linux最常應用正則表達式的命令有grep(egrep)、sed、awk。 正則表達式和文本通配符不同容易混淆。 字元匹配 . 匹配任意單個字元 [] 匹配指定範圍內的任意單個字元 [^] 匹配指定範圍外的任意單個字元 [:al ...
  • Linux的特點 1.免費的、開源的 2.支持多線程。多用戶的 3.安全性好 4.對記憶體和文件管理優越 5.linux最小隻需要4m->嵌入式開發 缺點: 操作相對困難 命令: shutdown -h now 立即進行關機 shutdown -r now 現在重新啟動電腦 reboot 現在重新啟 ...
  • 版本: Windows_server_2012-r2_x64 工具: VMware vSphere Client 鏡像地址: http://www.xpgod.com/soft/10718.html(地址為參考,可根據需求自行下載~) 首先鏈接虛機 鏈接成功後將本地資源進行上傳~ 滑鼠右擊datab ...
  • 從線程執行任務的方式上可以分為線程同步和線程非同步。而為了方便理解,後面描述中用“同步線程”指代與線程同步相關的線程,同樣,用“非同步線程”表示與線程非同步相關的線程。 線程非同步就是解決類似前面提到的執行耗時任務時界面控制項不能使用的問題。如創建一個次線程去專門執行耗時的任務,而其他如界面控制項響應這樣的任務 ...
  • var num = 1; var str = '1'; var test = 1; test == num //true 相同類型 相同值 test num //true 相同類型 相同值 test !== num //false test與num類型相同,其值也相同, 非運算肯定是false nu ...
  • Delphi DataTypeC# datatypeansistringstringbooleanboolbytebytecharcharcompdoublecurrencydecimaldoubledoubleextendeddoubleint64longint32intint16shortint... ...
  • 返回總目錄 本小節目錄 Replace Nested Conditional with Guard Claues(以衛語句取代嵌套條件表達式) Replace Conditional with Polymorphism(以多態取代條件表達式) 5Replace Nested Conditional ...
  • 這是使用ODP.NET鏈接Orcl資料庫常見錯誤,需要配置系統環境變數。 解決方法如下: 找到以下路徑文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 註意:修改前最好先備份以免.... 將下麵這段配置文件加 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...