التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 2 أصوات - بمعدل 4.5
  • 1
  • 2
  • 3
  • 4
  • 5
شرح الاتصال باى ماكينه حضور وانصراف بقاعده بيانات سيكول
#1
السلام عليكم ورحمه الله
الإخوه الأفاضل بعد بحث طويل وجدت أن هذا الموضوع نادر جدا على محركات البحث وقليل جدا من هم تكلمو عنه او رفعو حلول له وبعد طول عناء تم التوصل الى الحل بالكامل ومستعد بعون الله مساعده الجميع اذا ظهرت مشاكل سواءا بالتليفون الشخصى او الميل قد قمت بوضع الشرح فى ملف بى دى اف فى المرفقات مع ملفات الدى ال ال المطلوبه للمشروع  وسوف اقوم بوضع الرح بالكامل فى الموضوع تحسبا لحدوث صعوبه فى تحميل ملف البى دى اف
اخوكم فى الله  محمد عبد المرضى الحلوانى    مصر  01224710999   ميل  Moh.abdelmordy.it@gmail.com
الاتصال عن طريق IP  And Mac Port

أسأل الله تعالى أن يتقبل هذا العمل ويأجرنى عليه ويكون ذكاه علم لى
الإتصال بأى ماكينه حضور وإنصراف سواء بالكارت أو بالبصمه فالتعامل ثابت لا يتغير  ملحوظه قاعده البيانات سيكول سيرفر SQL Server
البدايه
سيتم فى البدايه اعداد وانشاء الجداول والاستورد بروسيدجر
أولا:- بناء الجداول اللازمه للإتصال وهما عباره عن جدولين
       الأول :- جدول يضاف فيه كل حركات الماكينه بكل الحقول وسيكون اسمه 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

ثانيا :- بناء كويرى لجلب البيانات التى لم تضاف فى الجدول الثانى  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
كود :
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






كود :
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]

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();
وبهذا تم الانتهاء والحمد لله  وانا معكم فى التواصل على الميل المكتوب اعلاه
والسلام عليكم ورحمه الله



الملفات المرفقة
.rar   SDK.rar (الحجم : 457.61 ك ب / التحميلات : 561)
.pdf   شرح طريقه الاتص&#1.pdf (الحجم : 421.93 ك ب / التحميلات : 535)
الرد }}}
تم الشكر بواسطة: abulayth , amer2000


الردود في هذا الموضوع
شرح الاتصال باى ماكينه حضور وانصراف بقاعده بيانات سيكول - بواسطة alhlwany - 25-08-13, 07:00 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل الكود هذا صحيح خاص بالربط مع قاعدة بيانات SQL server تركي احمد 0 214 15-02-24, 10:04 AM
آخر رد: تركي احمد
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 4,259 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  [سؤال] السلام عليكم بدون زحمة عندي نظام ارشفة مشتغلة بلغة سي شارب وقاعدة بيانات سكوال سيرفر مرتضى 1 675 13-05-23, 10:36 PM
آخر رد: عبدالله الدوسري
  [C#.NET] لماذا لا يتم عرض بيانات ahmed_king2023 0 548 22-04-23, 09:09 PM
آخر رد: ahmed_king2023
  [C#.NET] عرض بيانات قريد فيو في تكست بوكس ahmed_king2023 1 600 27-03-23, 04:54 PM
آخر رد: sanyor77
  انشاء قاعدة بيانات عن طرق الكود amonem 3 1,356 07-10-22, 12:51 PM
آخر رد: asemshahen5
  [سؤال] استيراد بيانات اصناف من الاكسيل لقاعدة بيانات البرنامج sql mazentq 8 2,345 09-07-22, 01:17 PM
آخر رد: asemshahen5
  عدد-بيانات-معينه-داخل-تقرير amonem 3 1,356 03-04-22, 09:42 PM
آخر رد: asemshahen5
  تحويل كود سي شارب الي فاكشن داخل سيكول سيرفر amonem 0 943 10-03-22, 11:32 AM
آخر رد: amonem
  [سؤال] تحديث قاعدة بيانات العملاء kasber 3 1,401 17-02-22, 09:48 PM
آخر رد: محمود بكرى

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم