السلام عليكم ورحمه الله
الإخوه الأفاضل بعد بحث طويل وجدت أن هذا الموضوع نادر جدا على محركات البحث وقليل جدا من هم تكلمو عنه او رفعو حلول له وبعد طول عناء تم التوصل الى الحل بالكامل ومستعد بعون الله مساعده الجميع اذا ظهرت مشاكل سواءا بالتليفون الشخصى او الميل قد قمت بوضع الشرح فى ملف بى دى اف فى المرفقات مع ملفات الدى ال ال المطلوبه للمشروع وسوف اقوم بوضع الرح بالكامل فى الموضوع تحسبا لحدوث صعوبه فى تحميل ملف البى دى اف
اخوكم فى الله محمد عبد المرضى الحلوانى مصر 01224710999 ميل Moh.abdelmordy.it@gmail.com
الاتصال عن طريق IP And Mac Port
أسأل الله تعالى أن يتقبل هذا العمل ويأجرنى عليه ويكون ذكاه علم لى
الإخوه الأفاضل بعد بحث طويل وجدت أن هذا الموضوع نادر جدا على محركات البحث وقليل جدا من هم تكلمو عنه او رفعو حلول له وبعد طول عناء تم التوصل الى الحل بالكامل ومستعد بعون الله مساعده الجميع اذا ظهرت مشاكل سواءا بالتليفون الشخصى او الميل قد قمت بوضع الشرح فى ملف بى دى اف فى المرفقات مع ملفات الدى ال ال المطلوبه للمشروع وسوف اقوم بوضع الرح بالكامل فى الموضوع تحسبا لحدوث صعوبه فى تحميل ملف البى دى اف
اخوكم فى الله محمد عبد المرضى الحلوانى مصر 01224710999 ميل Moh.abdelmordy.it@gmail.com
الاتصال عن طريق IP And Mac Port
أسأل الله تعالى أن يتقبل هذا العمل ويأجرنى عليه ويكون ذكاه علم لى
الإتصال بأى ماكينه حضور وإنصراف سواء بالكارت أو بالبصمه فالتعامل ثابت لا يتغير ملحوظه قاعده البيانات سيكول سيرفر SQL Server
البدايه
سيتم فى البدايه اعداد وانشاء الجداول والاستورد بروسيدجر
أولا:- بناء الجداول اللازمه للإتصال وهما عباره عن جدولين
الأول :- جدول يضاف فيه كل حركات الماكينه بكل الحقول وسيكون اسمه HR_InOut_Tbl
الثانى :- جدول يضاف فيه حركات الماكينه الجديده ففى الخطوات القادمه سنلاحظ إنه عند كل اتصال وتحميل للبيانات سيتم كل الحركات من على الماكينه وسيتم ذلك على الجدول الأول أما الجدول الثانى فهو لإضاف السطور الجديده او الاحداث الجديده على الماكينه والبيانات القديمه محفوظه ايضا فيه وسنرى كيف يتم ذلك
كود انشاء الجدول الأول HR_InOut_Tbl
البدايه
سيتم فى البدايه اعداد وانشاء الجداول والاستورد بروسيدجر
أولا:- بناء الجداول اللازمه للإتصال وهما عباره عن جدولين
الأول :- جدول يضاف فيه كل حركات الماكينه بكل الحقول وسيكون اسمه HR_InOut_Tbl
الثانى :- جدول يضاف فيه حركات الماكينه الجديده ففى الخطوات القادمه سنلاحظ إنه عند كل اتصال وتحميل للبيانات سيتم كل الحركات من على الماكينه وسيتم ذلك على الجدول الأول أما الجدول الثانى فهو لإضاف السطور الجديده او الاحداث الجديده على الماكينه والبيانات القديمه محفوظه ايضا فيه وسنرى كيف يتم ذلك
كود انشاء الجدول الأول HR_InOut_Tbl
كود :
CREATE TABLE [dbo].[HR_InOut_Tbl](
[IDD] [int] IDENTITY(1,1) NOT NULL,
[dwEnrollNumber] [int] NULL,
[name] [nvarchar](50) NULL,
[password] [nvarchar](50) NULL,
[privileg] [int] NULL,
[dwVerifyMode] [int] NULL,
[dwInOutMode] [int] NULL,
[timeStr] [nvarchar](50) NULL,
[_machineNumber] [int] NULL,
[_enrollNumber] [int] NULL,
[_enrollMachineNumber] [int] NULL,
[_verifyMode] [int] NULL,
[_inOutMode] [int] NULL,
[_year] [int] NULL,
[_month] [int] NULL,
[_day] [int] NULL,
[_hour] [int] NULL,
[_minute] [int] NULL,
CONSTRAINT [PK_HR_InOut_Tbl] PRIMARY KEY CLUSTERED
(
[IDD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
كود انشاء الجدول الثانى HR_InOutAct_Tbl
CREATE TABLE [dbo].[HR_InOut_Tbl](
[IDD] [int] IDENTITY(1,1) NOT NULL,
[dwEnrollNumber] [int] NULL,
[name] [nvarchar](50) NULL,
[password] [nvarchar](50) NULL,
[privileg] [int] NULL,
[dwVerifyMode] [int] NULL,
[dwInOutMode] [int] NULL,
[timeStr] [nvarchar](50) NULL,
[_machineNumber] [int] NULL,
[_enrollNumber] [int] NULL,
[_enrollMachineNumber] [int] NULL,
[_verifyMode] [int] NULL,
[_inOutMode] [int] NULL,
[_year] [int] NULL,
[_month] [int] NULL,
[_day] [int] NULL,
[_hour] [int] NULL,
[_minute] [int] NULL,
CONSTRAINT [PK_HR_InOut_Tbl] PRIMARY KEY CLUSTERED
(
[IDD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
[IDD] [int] IDENTITY(1,1) NOT NULL,
[dwEnrollNumber] [int] NULL,
[name] [nvarchar](50) NULL,
[password] [nvarchar](50) NULL,
[privileg] [int] NULL,
[dwVerifyMode] [int] NULL,
[dwInOutMode] [int] NULL,
[timeStr] [nvarchar](50) NULL,
[_machineNumber] [int] NULL,
[_enrollNumber] [int] NULL,
[_enrollMachineNumber] [int] NULL,
[_verifyMode] [int] NULL,
[_inOutMode] [int] NULL,
[_year] [int] NULL,
[_month] [int] NULL,
[_day] [int] NULL,
[_hour] [int] NULL,
[_minute] [int] NULL,
CONSTRAINT [PK_HR_InOut_Tbl] PRIMARY KEY CLUSTERED
(
[IDD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ثانيا :- بناء كويرى لجلب البيانات التى لم تضاف فى الجدول الثانى HR_InOutAct_Tbl
وكود انشائها
وكود انشائها
كود :
SELECT dbo.HR_InOut_Tbl.dwEnrollNumber, dbo.HR_InOut_Tbl.name, dbo.HR_InOut_Tbl.password, dbo.HR_InOut_Tbl.privileg, dbo.HR_InOut_Tbl.dwVerifyMode,
dbo.HR_InOut_Tbl.dwInOutMode, dbo.HR_InOut_Tbl.timeStr, dbo.HR_InOut_Tbl._machineNumber, dbo.HR_InOut_Tbl._enrollNumber,
dbo.HR_InOut_Tbl._enrollMachineNumber, dbo.HR_InOut_Tbl._verifyMode, dbo.HR_InOut_Tbl._inOutMode, dbo.HR_InOut_Tbl._year,
dbo.HR_InOut_Tbl._month, dbo.HR_InOut_Tbl._day, dbo.HR_InOut_Tbl._hour, dbo.HR_InOut_Tbl._minute
FROM dbo.HR_InOut_Tbl LEFT OUTER JOIN
dbo.HR_InOutAct_Tbl ON dbo.HR_InOut_Tbl.dwEnrollNumber = dbo.HR_InOutAct_Tbl.dwEnrollNumber AND
dbo.HR_InOut_Tbl.name = dbo.HR_InOutAct_Tbl.name AND dbo.HR_InOut_Tbl.password = dbo.HR_InOutAct_Tbl.password AND
dbo.HR_InOut_Tbl.privileg = dbo.HR_InOutAct_Tbl.privileg AND dbo.HR_InOut_Tbl.dwVerifyMode = dbo.HR_InOutAct_Tbl.dwVerifyMode AND
dbo.HR_InOut_Tbl.dwInOutMode = dbo.HR_InOutAct_Tbl.dwInOutMode AND dbo.HR_InOut_Tbl.timeStr = dbo.HR_InOutAct_Tbl.timeStr AND
dbo.HR_InOut_Tbl._machineNumber = dbo.HR_InOutAct_Tbl._machineNumber AND dbo.HR_InOut_Tbl._inOutMode = dbo.HR_InOutAct_Tbl._inOutMode AND
dbo.HR_InOut_Tbl._verifyMode = dbo.HR_InOutAct_Tbl._verifyMode AND
dbo.HR_InOut_Tbl._enrollMachineNumber = dbo.HR_InOutAct_Tbl._enrollMachineNumber AND
dbo.HR_InOut_Tbl._enrollNumber = dbo.HR_InOutAct_Tbl._enrollNumber AND dbo.HR_InOut_Tbl._year = dbo.HR_InOutAct_Tbl._year AND
dbo.HR_InOut_Tbl._month = dbo.HR_InOutAct_Tbl._month AND dbo.HR_InOut_Tbl._day = dbo.HR_InOutAct_Tbl._day AND
dbo.HR_InOut_Tbl._hour = dbo.HR_InOutAct_Tbl._hour AND dbo.HR_InOut_Tbl._minute = dbo.HR_InOutAct_Tbl._minute
WHERE (dbo.HR_InOutAct_Tbl._minute IS NULL)
GROUP BY dbo.HR_InOut_Tbl.dwEnrollNumber, dbo.HR_InOut_Tbl.name, dbo.HR_InOut_Tbl.password, dbo.HR_InOut_Tbl.privileg, dbo.HR_InOut_Tbl.dwVerifyMode,
dbo.HR_InOut_Tbl.dwInOutMode, dbo.HR_InOut_Tbl.timeStr, dbo.HR_InOut_Tbl._machineNumber, dbo.HR_InOut_Tbl._enrollNumber,
dbo.HR_InOut_Tbl._enrollMachineNumber, dbo.HR_InOut_Tbl._verifyMode, dbo.HR_InOut_Tbl._inOutMode, dbo.HR_InOut_Tbl._year,
dbo.HR_InOut_Tbl._month, dbo.HR_InOut_Tbl._day, dbo.HR_InOut_Tbl._hour, dbo.HR_InOut_Tbl._minute
ثم قم بحفظ الفيو بإسم Vew_AllMacData
ثالثا : بناء الاستورد بروسيدجر اللازمه
1- ستورد بروسيدجر لاضافه الحركات من الماكينه فى الجدول الاول HR_InOut_Tbl
2- ستورد بروسيدجر لاضافه البيانات الجديده التى لم تضاف فى الجدول الثانى HR_InOutAct_Tbl
كود انشاء الاستورد بروسيدجر الاولى AddGdata
ثالثا : بناء الاستورد بروسيدجر اللازمه
1- ستورد بروسيدجر لاضافه الحركات من الماكينه فى الجدول الاول HR_InOut_Tbl
2- ستورد بروسيدجر لاضافه البيانات الجديده التى لم تضاف فى الجدول الثانى HR_InOutAct_Tbl
كود انشاء الاستورد بروسيدجر الاولى AddGdata
كود :
CREATE PROCEDURE dbo.AddGdata
(
@dwEnrollNumber Int,
@name nvarchar(50),
@password nvarchar(50),
@privileg Int,
@dwVerifyMode Int,
@dwInOutMode Int,
@timeStr nvarchar(50),
@_machineNumber int,
@_enrollNumber int,
@_enrollMachineNumber int,
@_verifyMode int,
@_inOutMode int,
@_year int,
@_month int,
@_day int,
@_hour int,
@_minute int
)
AS
delete from HR_InOut_Tbl
insert into HR_InOut_Tbl
(dwEnrollNumber,[name],password,privileg,dwVerifyMode,dwInOutMode,timeStr,_machineNumber,_enrollNumber,_enrollMachineNumber,_verifyMode,_inOutMode,_year,_month,_day,_hour,_minute)
values
(@dwEnrollNumber,@name,@password,@privileg,@dwVerifyMode,@dwInOutMode,@timeStr,@_machineNumber,@_enrollNumber,@_enrollMachineNumber,@_verifyMode,@_inOutMode,@_year,@_month,@_day,@_hour,@_minute)
RETURN
كود انشاء الاستورد بروسيدجر الثانيه AddActdata
الأكواد سليمه ان شاء الله ولكن تتبعو الخطوات بكل دقه
تم الانتهاء من اعداد الجداول وتهيئه الاستورد بروسيدجر سننتقل الى فيجوال بيسك ونفتح مشروع ويب جديد بلغه سى شارب C#
تم ارفاق ملف SDK فى المرفقات فك ضغط الملف وقم بعمل كوبى لكل الملفات الموجوده فيه وقم بنسخها فى System32
او بنسخها فى Syswow64 اذا كانت الويندوز 7 او 8 او فيستا
ثم قم بكتابه التالى فى قائمه Run
Cmd
ويفضل فتح نافذه ال Command ب
Run As Administrator
ونكتب التالى فيها
Regsvr32 C:\Windows\SysWOW64\ zkemkeeper.dll
ثم اضغط انتر
ستظهر نافذه تدلك على نجاح العمليه فاذا ظهر رساله خطأ فابحث عن الخطأ فى جوجل الحلول موجوده فلن نتطرق لحل مشاكل ال regsvr هنا حيث انه موضوع طويل بعد نجاح العمليه
1- سنتوجه الان الى مشروع الويب ونقوم بعمل اد ريفرنس لملف ال zkemkeeper.dll من مساره على سيستم 32 او سيس واو64 ونضغط اوك
2- اضافه جمله الاتصال التاليه فى ملف الويب كونفيج بين تاجات connectionStrings
[HTML]
3- اضافه كلاس للاتصال مع قاعده بيانات السيكول وسيكون اسمه ConnectMang
كود :
CREATE PROCEDURE dbo.AddActdata
AS
insert into HR_InOutAct_Tbl
(dwEnrollNumber,[name],password,privileg,dwVerifyMode,dwInOutMode,timeStr,_machineNumber,_enrollNumber,_enrollMachineNumber,_verifyMode,_inOutMode,_year,_month,_day,_hour,_minute)
select
dwEnrollNumber,[name],password,privileg,dwVerifyMode,dwInOutMode,timeStr,_machineNumber,_enrollNumber,_enrollMachineNumber,_verifyMode,_inOutMode,_year,_month,_day,_hour,_minute
from Vew_AllMacData
RETURN
تم الانتهاء من اعداد الجداول وتهيئه الاستورد بروسيدجر سننتقل الى فيجوال بيسك ونفتح مشروع ويب جديد بلغه سى شارب C#
تم ارفاق ملف SDK فى المرفقات فك ضغط الملف وقم بعمل كوبى لكل الملفات الموجوده فيه وقم بنسخها فى System32
او بنسخها فى Syswow64 اذا كانت الويندوز 7 او 8 او فيستا
ثم قم بكتابه التالى فى قائمه Run
Cmd
ويفضل فتح نافذه ال Command ب
Run As Administrator
ونكتب التالى فيها
Regsvr32 C:\Windows\SysWOW64\ zkemkeeper.dll
ثم اضغط انتر
ستظهر نافذه تدلك على نجاح العمليه فاذا ظهر رساله خطأ فابحث عن الخطأ فى جوجل الحلول موجوده فلن نتطرق لحل مشاكل ال regsvr هنا حيث انه موضوع طويل بعد نجاح العمليه
1- سنتوجه الان الى مشروع الويب ونقوم بعمل اد ريفرنس لملف ال zkemkeeper.dll من مساره على سيستم 32 او سيس واو64 ونضغط اوك
2- اضافه جمله الاتصال التاليه فى ملف الويب كونفيج بين تاجات connectionStrings
[HTML]
<connectionStrings>
<add name="ERP_ProjectConnectionString" connectionString="Data Source=.;Initial Catalog=ERP_Project;uid=sa; password=mordy;" providerName="System.Data.SqlClient"/>
</connectionStrings>
[/HTML]<add name="ERP_ProjectConnectionString" connectionString="Data Source=.;Initial Catalog=ERP_Project;uid=sa; password=mordy;" providerName="System.Data.SqlClient"/>
</connectionStrings>
3- اضافه كلاس للاتصال مع قاعده بيانات السيكول وسيكون اسمه ConnectMang
كود :
4- using System;
5- using System.Data;
6- using System.Configuration;
7- using System.Linq;
8- using System.Web;
9- using System.Web.Security;
10- using System.Web.UI;
11- using System.Web.UI.HtmlControls;
12- using System.Web.UI.WebControls;
13- using System.Web.UI.WebControls.WebParts;
14- using System.Xml.Linq;
15- using System.Data.SqlClient;
16-
17-
18- /// <summary>
19- /// Summary description for ConnectMang
20- /// </summary>
21- public class ConnectMang
22- {
23-
24- public static SqlConnection GetConnection()
25- {
26-
27- SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ERP_ProjectConnectionString"].ToString());
28- Conn.Open();
29- return Conn;
30- }
31- }
-عمل كلاس لعمل الميسود التى ستستدعى من خلالها الاستورد بروسيدجر التى تم عملها فى السيكول سيرفر من قبل واسم الكلاس AddInMac
وكود الميسودز
وكود الميسودز
كود :
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Generic;
/// <summary>
/// Summary description for AddInMac
/// </summary>
public class AddInMac
{
public AddInMac()
{
//
// TODO: Add constructor logic here
//
}
public void AddGdata(Int32 dwEnrollNumber, string name, string password, Int32 privileg, Int32 dwVerifyMode, Int32 dwInOutMode,
string timeStr, int _machineNumber, int _enrollNumber, int _enrollMachineNumber, int _verifyMode, int _inOutMode,
int _year, int _month, int _day, int _hour, int _minute)
{
using (SqlConnection con = ConnectMang.GetConnection())
{
SqlCommand Cmd = new SqlCommand("AddGdata", con);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.AddWithValue("@dwEnrollNumber", dwEnrollNumber);
Cmd.Parameters.AddWithValue("@name", name);
Cmd.Parameters.AddWithValue("@password", password);
Cmd.Parameters.AddWithValue("@privileg", privileg);
Cmd.Parameters.AddWithValue("@dwVerifyMode", dwVerifyMode);
Cmd.Parameters.AddWithValue("@dwInOutMode", dwInOutMode);
Cmd.Parameters.AddWithValue("@timeStr", timeStr);
Cmd.Parameters.AddWithValue("@_machineNumber", _machineNumber);
Cmd.Parameters.AddWithValue("@_enrollNumber", _enrollNumber);
Cmd.Parameters.AddWithValue("@_enrollMachineNumber", _enrollMachineNumber);
Cmd.Parameters.AddWithValue("@_verifyMode", _verifyMode);
Cmd.Parameters.AddWithValue("@_inOutMode", _inOutMode);
Cmd.Parameters.AddWithValue("@_year", _year);
Cmd.Parameters.AddWithValue("@_month", _month);
Cmd.Parameters.AddWithValue("@_day", _day);
Cmd.Parameters.AddWithValue("@_hour", _hour);
Cmd.Parameters.AddWithValue("@_minute", _minute);
Cmd.ExecuteNonQuery();
}
}
public void AddActdata()
{
using (SqlConnection con = ConnectMang.GetConnection())
{
SqlCommand Cmd = new SqlCommand("AddActdata", con);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.ExecuteNonQuery();
}
}
}
-ثم اضافه عدد 3 تكست بوكس وعدد 2 بوتون فى صفحه الويب وجريد فيو وقم بتغير اسمائها كما فى الكود
الدخول على كود بهيند الصفحه بدبل كليك على الصفحه ونستدعى فضاءات الاسماء التاليه مع استدعاء اسم الملف الدى ال ال الذى قمنا بعمل اد ريفرنس له كالتالى
الدخول على كود بهيند الصفحه بدبل كليك على الصفحه ونستدعى فضاءات الاسماء التاليه مع استدعاء اسم الملف الدى ال ال الذى قمنا بعمل اد ريفرنس له كالتالى
كود :
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using zkemkeeper;ملف الدى ال ال
-ثم عمل اوبجكت من ملف الدى ال وتعريف الفاريبول واوبجكت من ملف الكلاس الخاص بالميسود الذى قمنا بعمله من قبل راجع الخطوات ويتم وضع سطور الكود تحت public partial class HR_PersonalAffire_DownDataMac : System.Web.UI.Page
كود :
Boolean conn, ll;
Int32 errCode, rr;
DataTable Dt = new DataTable();
public zkemkeeper.CZKEM axCZKEM1 = new zkemkeeper.CZKEM();اوبجكت من ملف الدى ال ال الريفرنس
private Boolean bIsConnected = false;
private int iMachineNumber;
AddInMac addinmacdll = new AddInMac(); اوبجكت من الكلاس الذى قمنا بتعريفه
- كود الزر الاول Connection – Check
كود :
try
{
axCZKEM1.SetCommPassword(Convert.ToInt16(Txt_CommKey.Text.Trim()));
axCZKEM1.BASE64 = 1;
conn = axCZKEM1.Connect_Net(Txt_MacIP.Text.Trim(), Convert.ToInt16(Txt_MacPort.Text.Trim()));
axCZKEM1.GetLastError(errCode);
rr = axCZKEM1.MachineNumber;
if (conn.Equals(true))
{
LblMsGError.Text = "تم الإتصال بنجاح تستطيع تحميل الحركات";
}
}
catch (Exception ex)
{
string Er = ex.ToString();
HttpCookie ErCokis = new HttpCookie("ErCokis");
ErCokis.Value = Er.ToString();
ErCokis.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(ErCokis);
Response.Redirect("~/ErrorPage.aspx");
}
ملحوظه يجب ان نقوم بعمل ميسود لكود فتح الاتصال ونستدعيها تحت الزر الاول بدلا من كتابه هذا الكود تحت الزر الاول لاننا سنحتاج فتح الاتصال فى عمليه تحميل الحركات وذلك بدلا من اعاده كتابه نفس سطور الكود مره اخرى تحت الزر الثانى
كود الزر الثانى
كود الزر الثانى
كود :
ConnectMac(); ميسود فتح الاتصال الذى تكلمنا عنها وهى نفس الكود المكتوب تحت الزر الاول
int dwEnrollNumber = 0;
string name = "";
string password = "";
int privileg = 0;
SqlConnection conexaoMySQL = default(SqlConnection);
string strSQL = "";
int dwVerifyMode = 0;
int dwInOutMode = 0;
string timeStr = "";
bool enable = false;
System.Text.StringBuilder _data = new System.Text.StringBuilder();
int _errorCode = 0;
int _machineNumber = 0;
int _enrollNumber = 0;
int _enrollMachineNumber = 0;
int _verifyMode = 0;
int _inOutMode = 0;
int _year = 0;
int _month = 0;
int _day = 0;
int _hour = 0;
int _minute = 0;
axCZKEM1.BASE64 = 1;
axCZKEM1.ReadMark = true;
axCZKEM1.GetLastError(_errorCode);
axCZKEM1.ReadAllUserID(1);
axCZKEM1.ReadMark = true;
// Boolean DD = axCZKEM1.ReadGeneralLogData(rr);
// Label1.Text = DD.ToString()+"MacNum____"+rr.ToString();
if (axCZKEM1.ReadGeneralLogData(1))
{
axCZKEM1.GetLastError(ref _errorCode);
while (axCZKEM1.GetGeneralLogData(1, ref _machineNumber, ref _enrollNumber, ref _enrollMachineNumber, ref _verifyMode, ref _inOutMode, ref _year, ref _month, ref _day, ref _hour, ref _minute))
{
axCZKEM1.GetGeneralLogDataStr(1, ref dwEnrollNumber, ref dwVerifyMode, ref dwInOutMode, ref timeStr);
axCZKEM1.GetUserInfo(1, dwEnrollNumber, ref name, ref password, ref privileg, ref enable);
int data1 = 0;
int data2 = 1000000;
conexaoMySQL = new SqlConnection(ConfigurationManager.ConnectionStrings["ERP_ProjectConnectionString"].ToString());
if (data1 < _minute)
{
//strSQL = "INSERT INTO InOut (dwEnrollNumber,[name],password,privileg,dwVerifyMode,dwInOutMode,timeStr,_machineNumber,_enrollNumber,_enrollMachineNumber,_verifyMode,_inOutMode,_year,_month,_day,_hour,_minute) VALUES ( '" + dwEnrollNumber + "','" + name + "','" + password + "','" + privileg + "','" + dwVerifyMode + "','" + dwInOutMode + "','" + timeStr + "','" + _machineNumber + "','" + _enrollNumber + "','" + _enrollMachineNumber + "','" + _verifyMode + "','" + _inOutMode + "','" + _year + "','" + _month + "', '" + _day + "','" + _hour + "','" + _minute + "')";
//strSQL = "INSERT INTO InOut (dwEnrollNumber,[name],password,privileg,dwVerifyMode,dwInOutMode,timeStr,_machineNumber,_enrollNumber,_enrollMachineNumber,_verifyMode,_inOutMode,_year,_month,_day,_hour,_minute) VALUES ( '" + 1 + "','" + "MM" + "','" + "PS" + "','" + 1 + "','" + 1 + "','" + 1 + "','" + "timeStr" + "','" + 1 + "','" + 1 + "','" + 1 + "','" + 1 + "','" + 1 + "','" + 1 + "','" + 1 + "', '" + 1 + "','" + 1 + "','" + 1 + "')";
addinmacdll.AddGdata(dwEnrollNumber, name, password, privileg, dwVerifyMode, dwInOutMode, timeStr, _machineNumber, _enrollNumber, _enrollMachineNumber, _verifyMode, _inOutMode, _year, _month, _day, _hour, _minute);
}
Label1.Text = _enrollNumber.ToString();
}
addinmacdll.AddActdata();
LblMsGError.Text = "تم تحميل الحركات";
}
// GridView1.DataBind();
وبهذا تم الانتهاء والحمد لله وانا معكم فى التواصل على الميل المكتوب اعلاه
والسلام عليكم ورحمه الله
والسلام عليكم ورحمه الله