الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشروع برنامج تسييرالطلبة

بدأه mohammeding في 18 يوليو 2010 · 18 رد · 3,990 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم كيف حالكم

أردت بهداالموضوع تقديم مشروع تسيير طلبة قمت بي برمجتة قبل حوالي أسبوعين و خفت أن يبقى حبيس أدراج الهارديسك فقررت أن أشارككم به و أتمنى أن يكتمل المشروع  لاأن به بعض النقائص سأقوم بشرحها إنشاالله

بسم الله الرحمن الرحيم

المشروع مبرمج بلغة c# وقاعدة البيانات مصممة mysql

نبدأ بي قواعد البيانات المسماة تحت إسم fekair تحتوي على  ثلاث جداول

etudiant هدا جدول يحتوي على المعلومات الخاصة بي الطلبة

points هدا جدول يحتوي على المعلومات الخاصة بي نقاط الطلبة

admin هدا جدول يحتوي على المعلومات الخاصة بي مدير البرنامج

هذه الصورة توضح بنية قاعدة البيانات

post-163892-062731600 1279401786_thumb.j

نبدأ الأن بي البرنامج

أول شيئ عند تشغيل البرامج يطلبك في كلمة المرور وذللك للإن البرنامج محمي بكلمة مرور و أسم مستخدم

post-163892-099249200 1279400905_thumb.j

إضغظ على زر connexion مباشرة لأني معطل عملية التحقق

ثم تظهر شاشة البرنامج كمافي الصورة  

post-163892-013732800 1279401010_thumb.j

خصائص هذه الشاشة

حفظ الطلبة وعرضهم في جدول

لدينا هذه القائمة المصغرة الي تظهر في الجدول فقط تستطيع بها عمل عدة عمليات على الطلبة حذف تغيير عرض تقرير

post-163892-059213100 1279402023_thumb.j

لدينا هنا عرض تقرير على طالب كمثال لى شهادة مدرسية

post-163892-015727300 1279401110_thumb.j

هذه الشاشة تضضمن عمليات إدخال النقاط للطلبةو تنقيح الطلبة يعني لي تحت عشرة يعرض بلون أحمر(على حسب نظام التعليم الجزائري) و عملية البحث و عرض كشف نقاط الطلبة

post-163892-056266000 1279401146_thumb.j

هذه الشاشة تعرض كشف نقاط الطالب

post-163892-098725700 1279401199_thumb.j

نأتي أن على شاشة مدير البرنامج

post-163892-037531700 1279401213_thumb.j

تطلب إسم ستخدم وكلمة مرور

admin
rootroot

هذه الشاشة تعرض عمليات تسييرالبرنامج

post-163892-027531400 1279401379_thumb.j

حفظ نسخة من قاعدة معطيات

عملية حفظ نسخة من قاعدة البيانات بنسخ ملفات جداول و ضغظها لأن البرنامج يحتوي على خوارمية الضغظ و فك الضغظ

 إسترجاع قاعدة المعطيات 

حفظ كملف html

post-163892-043013000 1279406005_thumb.j

حفظ كملف xml

<?xml version="1.0" standalone="yes" ?> 
- <Etudiant>
- <Inventory>
  <ID>1</ID> 
  <Nom>fekair</Nom> 
  <Prénom>mohammed</Prénom> 
  <Date_Naissance>1988-12-16T00:00:00+01:00</Date_Naissance> 
  <Niveau>master</Niveau> 
  <Specialite>informatique</Specialite> 
  <Télephone>0698831870</Télephone> 
  </Inventory>
- <Inventory>
  <ID>4</ID> 
  <Nom>amar</Nom> 
  <Prénom>amarmoh</Prénom> 
  <Date_Naissance>1964-05-05T00:00:00+02:00</Date_Naissance> 
  <Niveau>licence</Niveau> 
  <Specialite>math</Specialite> 
  <Télephone>639843280</Télephone> 
  </Inventory>
- <Inventory>
  <ID>5</ID> 
  <Nom>fekair</Nom> 
  <Prénom>amine</Prénom> 
  <Date_Naissance>1980-12-12T00:00:00+01:00</Date_Naissance> 
  <Niveau>master</Niveau> 
  <Specialite>infot</Specialite> 
  <Télephone>87364876</Télephone> 
  </Inventory>
- 
  </Etudiant>

تحويل قاعدة معطيات من mysql  إلى Access (غير مكتمل )

تحديث برنامج (غير مكتمل)

صيانة البرنامج (غير مكتمل )

هذه الشاشة تبين عملية تسجيل حساب جديد لمستخدم 

post-163892-009218000 1279402026_thumb.j

post-163892-069888000 1279401502_thumb.j

هذه الشاشة تبين عملية تسجيل طلبة عن طريق ملف 

post-163892-050476600 1279402033_thumb.j

post-163892-063034100 1279401545_thumb.j

بحيث هناك قواعد لكتابة في الملف بحيث تكن كشكل التالي

aya,aya,1999-12-12,alger,prima,sie,amar,05567896532
moh,moh,1988-12-12,alger,prima,sie,amar,05567896532
ahmed,ahmed,1991-12-12,alger,prima,sie,amar,05567896532

كريستال ريبورت 

post-163892-097958400 1279401936_thumb.j

post-163892-098731000 1279401984_thumb.j

كما قلت في البداية هناك  أجزاء غير مكتملة و أرجو أن نتعاون لكي نكملها ونظيفها في البرنامج

1 أولا تغير ثيم البرنامج  من ويندوز إلى لينكيس إلى ويندوز 7

post-163892-075486500 1279402028_thumb.j

2 قائمة الهالب  تسجيل البرنامج و  مساعدة في أستعمال البرنامج 

post-163892-026630900 1279402031_thumb.j

3 تحويل من mysql to Access

post-163892-027531400 1279401379_thumb.j

4 تحديت البرنامج 

إذا كان هناك أخطاء أرجو إشعاري

للعلم فقط لغة البرنامج : الفرنسية

post-163892-096125600 1279400888_thumb.j

المرفقات
11.jpg1.jpg2.jpg3.jpg4.jpg5.jpg6.jpg7.jpg8.jpg10.jpg20.jpg11.jpg12.jpg13.jpg14.jpg15.jpg17.jpg19.jpg21.jpg

تم تعديل هذه المشاركة بواسطة mohammeding في 18 يوليو 2010 في 01:52

#2

كود سورس في المرفقات مع قاعدة البيانات تحت إسم toto.zip

بصراحة ساعة متأخرة من الليل غذا إن شاالله سأحاول شرح المزيد و طرح النقائص لكي نقوم بي تتطوير أن شااالله

Fekair_Data.rar

#3

السلام عليكم سنحاول اليوم إن شاالله تطوير كلاس تقوم بتحويل من Mysql إلى Access

سنقوم بإنشاء كلاس تقوم بي أنشاء قاعدة البيانات و جداولها الثلاث

أول شيئ نقوم بي إضافة Microsoft ADO Ext. X.X for DDL and Security من COM reference

post-163892-019821300 1279453806_thumb.j

ثم ننشئ كلاس تقوم بإنشاء قاعدة البيانات وجداول هاهوا الكود

using System;
using ADOX;
ADOX.CatalogClass cat = new ADOX.CatalogClass();
            string tmpStr;
            string filename = "C:\\fekair.MDB";
            tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";
            tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";
            cat.Create(tmpStr);
            Table nTable = new Table();
            nTable.Name = "etudiant";
            nTable.Columns.Append("idEtudiant", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Nom", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Prenom", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Date_Naissance", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Lieu_Naissance", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Niveau", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Specialite", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Nom_Pere", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("telephone", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nTable);
            Table nnTable = new Table();
            nnTable.Name = "admin";
            nnTable.Columns.Append("idAdmin", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("nom", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("prenom", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("date_n", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("lieu_n", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("nom_u", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("mot_passe", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("niveau", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nnTable);
            Table nnnTable = new Table();
            nnnTable.Name = "points";
            nnnTable.Columns.Append("IdEtudiant", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("math", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("phys", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("chim", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("sien", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("gemo", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("sport", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nnnTable);

            cat = null;

بقي لدينا الأن تحويل المعطيات من جداول Mysql إلى جداول Access

عندما يجهز الكود سأقوم بي أضافته كاميثود في الكلاس

المرفقات
addref.jpg
#4

الحمد لله لقد إنتهيت من برمجة الكلاس التي تقوم بتحويل من Mysql  إلى Access مع كامل البيانات

كود الكلاس كامل

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ADOX;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data.Odbc;
using System.Windows.Forms;
using System.Data.OleDb;


namespace Fekair_Data
{
    class Mysql_To_Access
    {
        public static connect_to_db database;
        public OdbcConnection Conn_Access;
        string chemin_db = @"DBQ=C:\fekair.mdb";
        public Mysql_To_Access()
        {
            database = new connect_to_db("Mysql");
            ADOX.CatalogClass cat = new ADOX.CatalogClass();
            string tmpStr;
            string filename = "C:\\fekair.MDB";
            tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";
            tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";
            try
            {
                cat.Create(tmpStr);
            }
            catch (Exception  ee)
            {
                MessageBox.Show(ee.ToString());
            }
            Table nTable = new Table();
            nTable.Name = "etudiant";
            nTable.Columns.Append("idEtudiant", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Nom", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Prenom", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Date_Naissance", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Lieu_Naissance", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Niveau", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Specialite", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("Nom_Pere", DataTypeEnum.adVarWChar, 25);
            nTable.Columns.Append("telephone", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nTable);
            Table nnTable = new Table();
            nnTable.Name = "admin";
            nnTable.Columns.Append("idAdmin", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("nom", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("prenom", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("date_n", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("lieu_n", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("nom_u", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("mot_passe", DataTypeEnum.adVarWChar, 25);
            nnTable.Columns.Append("niveau", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nnTable);
            Table nnnTable = new Table();
            nnnTable.Name = "points";
            nnnTable.Columns.Append("IdEtudiant", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("math", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("phys", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("chim", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("sien", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("gemo", DataTypeEnum.adVarWChar, 25);
            nnnTable.Columns.Append("sport", DataTypeEnum.adVarWChar, 25);
            cat.Tables.Append(nnnTable);
            cat = null;
            Access_connect();

            try
            {
                string sql = "SELECT * FROM etudiant ";
                MySqlCommand cmd = new MySqlCommand(sql, database.connection());
                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    try
                    {
                        string sqla = "INSERT INTO etudiant VALUES ('" + rdr[8] + "', '" + rdr[0] + "', '" + rdr[1] + "', '" + rdr[2] + "', '" + rdr[3] + "', '" + rdr[4] + "', '" + rdr[5] + "', '" + rdr[6] + "', '" + rdr[7] + "')";
                        OdbcCommand myCommandInsert = new OdbcCommand(sqla, Conn_Access);
                        myCommandInsert.ExecuteNonQuery();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("Connexion à Database Access échoue" + e.ToString());
                    }

                }
                rdr.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Connexion à Database échoue:"+ ex.ToString());
            }
            try
            {
                string sql = "SELECT * FROM admin ";
                MySqlCommand cmd = new MySqlCommand(sql, database.connection());
                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    try
                    {
                        string sqla = "INSERT INTO admin VALUES ('" + rdr[0] + "', '" + rdr[1] + "', '" + rdr[2] + "', '" + rdr[3] + "', '" + rdr[4] + "', '" + rdr[5] + "', '" + rdr[6] + "', '" + rdr[7] + "')";
                        OdbcCommand myCommandInsert = new OdbcCommand(sqla, Conn_Access);
                        myCommandInsert.ExecuteNonQuery();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("Connexion à Database Access échoue" + e.ToString());
                    }

                }
                rdr.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Connexion à Database échoue"+ex.ToString());
            }
            try
            {
                string sql = "SELECT * FROM points ";
                MySqlCommand cmd = new MySqlCommand(sql, database.connection());
                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    try
                    {
                        string sqla = "INSERT INTO points VALUES ('" + rdr[0] + "', '" + rdr[1] + "', '" + rdr[2] + "', '" + rdr[3] + "', '" + rdr[4] + "', '" + rdr[5] + "', '" + rdr[6] + "')";
                        OdbcCommand myCommandInsert = new OdbcCommand(sqla, Conn_Access);
                        myCommandInsert.ExecuteNonQuery();
                        MessageBox.Show("conversion Mysql à Access Réussi");
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("Connexion à Database Access échoue"+e.ToString());
                    }
                }
                rdr.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Connexion à Database échoue"+ex.ToString());
            }
            Conn_Access.Close();

        }
        public void Access_connect()
        {
            string urlAcess = "Driver={Microsoft Access Driver (*.mdb)};" + chemin_db;
            Conn_Access = new OdbcConnection(urlAcess);
            try
            {
                Conn_Access.Open();
                MessageBox.Show("Conntecing a Acsees ...");  
            }

            catch (Exception ex)
            {
                MessageBox.Show("Désolé : " + ex.Message);
            }
        }

    }
}

أرجو منكم التعاون لي إكمال البرنامج و إستفسار عن أي نقطة و نقدي إن كان هناك نقائص في الكود و ذلك للإستفادة جميع و شكر

#5

الحمد لله لقد إنتهيت من برمجة كلاس تقوم بحفظ صور طلبة في قاعدة المعطيات Mysql

جدول Mysql يكون على الشكل التالي

create table image_etu (
 IdEtudiant int(20) not null auto_increment,
 img        longblob,
 primary key(IdEtudiant)
                         );

هاهو كود كامل

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace Fekair_Data
{
    class save_picture
    {
        string filePath;
        public static connect_to_db database;
        public save_picture()
        {
            OpenFileDialog Openimg = new OpenFileDialog();
            Openimg.Title = "Fekair Data";
            Openimg.DefaultExt = ".bmp";
            Openimg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
            if (Openimg.ShowDialog() == DialogResult.OK)
            {
                if (Openimg.FileName != "")
                {

                   filePath=@Openimg.FileName;

                }
            }
            database = new connect_to_db("Mysql");
            try
            {
                FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                byte[] myImageDB = new byte[fs.Length];
                fs.Read(myImageDB, 0, (int)fs.Length);

                MySqlCommand cmd = new MySqlCommand("insert into image_etu (img) values(?paramImg)", database.connection());
                MySqlParameter prm = new MySqlParameter();
                prm = cmd.Parameters.Add("paramImg", MySqlDbType.LongBlob, (int)fs.Length);
                prm.Value = myImageDB;
                prm.Direction = ParameterDirection.Input;
                cmd.ExecuteNonQuery();
            }
            catch (Exception ez)
            {
                MessageBox.Show(ez.ToString());
            }

        }
    }
}

بقي الأن كيفية إستراجاع الصورة من Mysql حينما أنتهي من الكود سأضعه إن شاالله

تم تعديل هذه المشاركة بواسطة mohammeding في 19 يوليو 2010 في 21:55

#6

جهد جميل ، الله يعطيك العافية والصحة ...

لي بعض النقاط عليه :

1-حبذا لو كانت الواجهة باللغة العربية ( أو بالإنكليزية ) على آقل تقدير ، قمت بفتح المشروع و لم أستطع التعامل معه لأنني لم آعرف ما تشير إليه .

2- إذا كان هذا الموضوع مشروع فعليك على الآقل أن تشاركنا بالمهام الذي ترغب بإضافتها إليه ، أي قمت ببرمجة "إضافة الصور" و كذلك الآمر بالنسبة لإختيار قاعدة بيانات MYSQL ، فسؤالي هنا : مادور الآعضاء في الموضوع ؟ هل هو برنامج وضعت صفاته وإمكانياته و تريد تنفيذها بغض النظر عن آراء الآعضاء الذين يرغبون بالمشاركة ؟

إذا كان كذلك فلنعتبره "دروس" في كيفية تنفيذ إمكانيات البرنامج ....

في كل الآحوال : جهد تشكر عليه و إستمر جزاك الله خيرا .....

بالتوفيق

#7

الحمد لله تم إنتهاء من برمجة كود استعراض صوة من قاعدة البيانات Mysql جاهز

 هاهو كود

try
            {

                MySqlDataReader reader = null;
                string sqla = "select img from image_etu where IdEtudiant ="+ id + ";";
                cmd.CommandText = sqla;
                reader = cmd.ExecuteReader();
                reader.Read();
                byte[] btMnImage = (byte[])reader.GetValue(0);
                reader.Close();
                MemoryStream MnStream = new MemoryStream(btMnImage, true);
                MnStream.Write(btMnImage, 0, btMnImage.Length);
                Bitmap bmpMnImage = new Bitmap(MnStream);
                pictureBox1.Image = bmpMnImage;

            }
            catch (MySqlException e2)
            {
                MessageBox.Show("Erreur : " + e2.Message);
            }
#8

بارك الله فيك أخ حسام على التشجيع

 بصرحة أنا أتمنى أن يشاركني أعضاء في برمجة مشروع بس كنت استنى

 ردود أعضاء المستعدين لمشاركتي في تطوير وبعدين كنت حوزع مهام و نقائص المشروع لكي نتعاون فيها

#9

اليوم سنتناول كيفية تسجيل البرنامج عند الموزع لي هو سيرفر لحماية البرنامج من الكراك

قمت بتصميم خوارزمية تقوم بعملية تسجيل برنامج عند السيرفر 

post-163892-015758800 1279628514_thumb.j

أرجو من لديه خبرة أن يعطيني رأيه في الخوارزمية

أول شيئ نحتاجه هو برمجة Socket تقوم بإرسال و إستقبال المعلومات الأساسية

لنفترض أن سيرفر موجود و يعمل  أتمنى لو واحد يشاركني في برمجة سيرفر يكون يفهم شوي برمجة الشبكات

وأنا سأبرمج كلاس تقوم بعمليات الزبون ( البرنامج)

أول شيئ  قمت ببرمجته هو ميثود تقوم بقراءة سيريال Motherboard

1)

post-163892-024344600 1279628473_thumb.j

2)

using System.Management;
        static string GetMotherboardSerialNumber()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher
            ("SELECT SerialNumber, Product FROM Win32_BaseBoard");

            ManagementObjectCollection information = searcher.Get();
            string serialNumber = string.Empty;
            foreach (ManagementObject obj in information)
            {
                if (obj.Properties["SerialNumber"].Value.ToString().Trim() != string.Empty)
                    serialNumber = obj.Properties["SerialNumber"].Value.ToString().Trim();
                else
                    serialNumber = obj.Properties["Product"].Value.ToString().Trim();
                break;
            }

            searcher.Dispose();
            return serialNumber;
        }

من لديه رغبة في مشاركة في المشروع أن يضع رد في الموضوع

المرفقات
sy_man.jpgregistration.jpg

تم تعديل هذه المشاركة بواسطة mohammeding في 20 يوليو 2010 في 15:27

#10

مجرد فكرة :

لماذا الإعتماد على Socket في تبادل البيانات و لديك WCF Services موجودة ؟ إدارتها و إستدعائها و تبادل البيانات آسهل بكثير كما يمكنك الإعتماد عليها في مسآلة تشفير تبادل البيانات ..

لي عودة مساء بعد العودة من العمل :ph34r: ..

#11

بارك الله فيك أخ حسام على الرد خبير رأيك يهمنا في تطوير مشروع

اقتباس

لماذا الإعتماد على Socket في تبادل البيانات و لديك WCF Services موجودة ؟ إدارتها و إستدعائها و تبادل البيانات آسهل بكثير كما يمكنك الإعتماد عليها في مسآلة تشفير تبادل البيانات ..

بصراحة أول مرة أسمع عن   WCF Services سأبحث عنا وإذا كانت تفيد و سهلة سنستعملها إن شااالله

#12

لماذا لاتكون الواجهات باللغة العربية ! أو الانجليزية لانني لم أفهم ماهذه اللغة التي قمت باستخدامها أخي الكريم .

تم تعديل هذه المشاركة بواسطة ToBeOrNotToBe في 20 يوليو 2010 في 16:19

#13
اقتباس

لماذا لاتكون الواجهات باللغة العربية ! أو الانجليزية لانني لم أفهم ماهذه اللغة التي قمت باستخدامها أخي الكريم .

اللغة الفرنسية يأخي سأحول طرح نسخة باللغة إنجليزية إن شالله

#14

أخ حسام بعد البحث عن هذه التقنية والله عجبتني كثير و قوية جدا في مجال تبادل الخدمات بين مختلف موزعين الخدمة و مستهليكين الخدمة لي هم الزبائن

post-163892-097507400 1279663810_thumb.j

أول شيئ نقوم به هو إنشاء الخدمة التي تقوم بتحقق من البرنامج و نسميها سيرفر

<%@ WebService language="C" class="Server" %>

  using System;
  using System.Web.Services;
  using System.Xml.Serialization;

  [WebService(Namespace="http://localhost/Server/")]
  public class Server : WebService
  {
      [WebMethod]
      public int Reg_Log(String serial_motherboard, String serial_programme)
      {
	      //requete in DataBase
          return yes;
      }
  }

ثاني شئ نقوم بوراثة ملف wsdl من سيرفرعبر أمر التالي

c:> WSDL http://localhost/Server_Fekair/Server.asmx?WSDL
  c:> csc /t:library Server.cs

و في أخير الميثود التي تقوم بتحقق من تصريح إستخدام البرنامج و التي تتصل بسيرفر

public static void registry(String[] args)
      {
          Server mySvc = new Server();
          string resulta=mySvc.Reg_Log();  //resulta(yes/no)

      }

تعتبر هذه خوارزمية تحقق بسيطة جدا فقط لكي نفهم كيف نبني برامج تقوم بتحقق من نفسها بنفسها

ممكن يكون هناك أخطاء أرجو متابعة كود جيدا للأن خبرتي قليلة في مجال web service

رابط يشرح أستخدام ويب سيرفس

المرفقات
webse.jpg

تم تعديل هذه المشاركة بواسطة mohammeding في 21 يوليو 2010 في 01:41

#15

طريقة ثانية في تسجيل البرنامج عند سيرفر وذلك بإستخدام Socket

تم إنتهاء من كود الحمدالله

قمت بإستخدام البرتوكول UDP

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Collections;
using System.IO;
using System.Net;
using System.Threading;

    class Client_To_Server
    {
        public Thread Reception;
        public int port_out= 8888, port_in= 6666;
        public Client_To_Server()
        {
            UdpClient udpClient = new UdpClient();
          udpClient.Connect("127.0.0.1", port_out);
            Byte[] sendBytes = Encoding.ASCII.GetBytes(GetMotherboardSerialNumber());
            udpClient.Send(sendBytes, sendBytes.Length);
            Reception = new Thread(new ThreadStart(TherdeReception));
            Reception.Start();

        }
        public void TherdeReception()
        {

            UdpClient udpserver = new UdpClient(port_in);
            while (true)
            {
                IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                Byte[] receiveBytes = udpserver.Receive(ref RemoteIpEndPoint);
                string returnData = Encoding.ASCII.GetString(receiveBytes);
                this.Invoke(new UpdateLogCallback(this.UpdateLog), new object[] { returnData.ToString() });

            }
        }
        public void UpdateLog(string strMessage)
        {
            String Statu = "yes";  //yes/no
            Reception.Abort();
        }
        static string GetMotherboardSerialNumber()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher
            ("SELECT SerialNumber, Product FROM Win32_BaseBoard");

            ManagementObjectCollection information = searcher.Get();
            string serialNumber = string.Empty;
            foreach (ManagementObject obj in information)
            {
                if (obj.Properties["SerialNumber"].Value.ToString().Trim() != string.Empty)
                    serialNumber = obj.Properties["SerialNumber"].Value.ToString().Trim();
                else
                    serialNumber = obj.Properties["Product"].Value.ToString().Trim();
                break;
            }

            searcher.Dispose();
            return serialNumber;
        }
    }

من لديه أي أستفسار أنا في خدمة

تم تعديل هذه المشاركة بواسطة mohammeding في 21 يوليو 2010 في 02:34

#16

ما إستخدمته أخي mohammeding هو Web Services و ليس WCF ، فهي تقنية آخرى ...

عذراً بسبب الإنشغال البارحة ...

ننتظر تحويل البرنامج إلى اللغة الإنكليزية لتكون الآمور آسهل ..

بالتوفيق

#17

لقد تم إنتهاء من النسخة الأنجليزية أصبحت جاهزة لتحميل في المرفقات وهي مزودة أيضا بالأكواد التي قمنا بإضافتها في المشاركات السابقة

المرفقات تحتوي على كود سورس c# + قاعدة البيانات Mysql + التقرير Crystal Reports

post-163892-006524500 1279715183_thumb.j

post-163892-021074100 1279715061_thumb.j

post-163892-053828000 1279715102_thumb.j

اقتباس

ما إستخدمته أخي mohammeding هو Web Services و ليس WCF ، فهي تقنية آخرى

بارك الله فيك أخ حسام على التنبيه

قد إختلطت علي أمور بين web service و WCF وجدت موقع هنا يشرح تقنية WCF هل هذا ما تقصده

لي عودة لشرح هذه التقنية إن شاالله

Fekair_Data_ENG.rar

المرفقات
2.jpg3.jpg1.jpg

تم تعديل هذه المشاركة بواسطة mohammeding في 21 يوليو 2010 في 15:47

#18

يوجد مشكلة عند تحميل المرفق وفتح ملف الـ Solution باستخدام النسخة VS 2008 .. يبدوا ان بعض الملفات الخاصة بالتقرير وقاعدة البيانات لم يتم ادراجها ضمن مجلد المشروع !!

لم استطع تشغيل البرنامج مالعمل ؟

تم تعديل هذه المشاركة بواسطة ToBeOrNotToBe في 24 يوليو 2010 في 02:05

#19

يأخي قمت بتحميل وكل شيئ تمام أنظرهذه الصورة

post-163892-049784300 1279970503_thumb.g

1 ملف المشروع

2 التقريران على اليسار يخص شهادة مدرسية و على اليمين يخص كشف النقاط قم بوضعهم في C:\\

rpt.Load(@"C:\raport.rpt");

rpt.Load(@"C:\Raport_point.rpt");

3 ملف قاعدة البيانات قم بفك ضغظ و ضع ملف ناتج في Data موجود MYSQL

المرفقات
exp.gif

مواضيع مشابهة