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

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الأربعاء مايو 08, 2013 12:50 pm

نحمده ونصلي على رسوله الكريم
السلام عليكم ورحمة الله

قد سمع الجميع عن هذه التقنية، وربما البعض قد استخدمها أيضاً، ولكن باعتقادي أنها غير مستخدمة بشكل كبير في عالم البرمجة العربية!
Linq تقنية استعلام عن البيانات بأشكال كثيرة، وليست محصورة في التعامل مع قواعد البيانات فقط. تجد فيها السهولة والقوة في آنٍ واحد، تخلو من التعقيدات، وتختصر الكود البرمجي، تصبح جداول وأعمدة قاعدة البيانات فئات وخصائص، يتم التعامل معها من كود لغة البرمجة المستخدمة....

لو نظرنا لهذا الكود، على افتراض أن (Person) فئة داخل المشروع:



الكود:
label1.Text = Person.Name;
textBox1.Text = Person.Age;
أو هذا الكود:


الكود:
Person.Name = "Abd Allah";
Person.Age = 40;
* أترك لك كتابة كود sql لجلب البيانات من الجدول واستعراضها في الأدوات، أو تغيير قيمها، لتقارن ذلك بنفسك.

لن أطيل الكلام، ودعنا نبدأ مشروع صغير (دليل هاتف)، سوف نضع فيه ما يلزم لمشروع كبير إن شاء الله، فكل مشاريع قواعد البيانات متشابهة، فقط حجم المشروع وعدد الشاشات هما الفرق.

سوف يحتوي مشروعنا على ما يلي:


  1. نموذج لتسجيل الدخول.
  2. نموذج لإضافة مستخدم.
  3. نموذج لحذف / إيقاف مستخدم.
  4. نموذج لتعديل اسم المستخدم وكلمة المرور.
  5. تبويب (أو لسان) لإدخال (اسم ورقم / أرقام هاتف في الدليل).
  6. تبويب لتعديل البيانات (اسم، رقم / أرقام الهاتف).
  7. تبويب لحذف البيانات (اسم، رقم / أرقام الهاتف).
  8. تبويب لاستعراض البيانات.


على الله نتوكل وبه نستعين.
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الأربعاء مايو 08, 2013 1:20 pm

لنلقي نظرة على قاعدة البيانات، سوف نحتاج للجداول التالية:

  • جدول للمستخدمين.
  • جدول للأسماء.
  • جدول لأرقام الهواتف.

جدول المستخدمين سوف يحتوي على الأعمدة:


  • عمود للاسم.
  • عمود لكلمة المرور.
  • عمود هل المستخدم مدير.
  • عمود هل المستخدم مفعل.

جدول الاسماء سوف يحتوي على الأعمدة:


  • الاسم.
  • العنوان.
  • ملاحظات.

جدول أرقام الهواتف سوف يحتوي على الأعمدة:


  • رقم الشخص. (علاقة)
  • رقم الهاتف.

* في كل جدول سوف يكون هنالك حقل ID خواصه: مفتاح أساسي وترقيم تلقائي.

نبدأ مشروع جديد باسم (TelephoneBook)، أول ما سنقوم به هو عمل قاعدة البيانات، نتوجه للـ Menu Bar ونختار:


  • Project
  • Add New Item

ثم نختار LINQ To SQL Classes، ليكن اسمه (PhoneBookDB).

* يمكننا فعل ذلك من Solution Explorer أيضاً، بتحديد المشروع ثم الضغط بالزر الأيمن من الفأرة واختيار:


  • Add
  • New Item

التبويب الذي ظهر أمامنا بعد إضافة العنصر يبدو فارغاً ولا يحتوي سوى:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report HtLYj

نختار Toolbox لتطالعنا نافذة الأدوات، ستبدو كما في هذه الصورة:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report WT3jl

هذه الأدوات الخاصة بالفئة (محتوى البيانات)، نسحب منها أداة Class ونضعها على المصمم:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report TYx8P

الآن لو ضغطنا مرتين بالفأرة على كلمة Class1 سيتم تمكيننا من تحرير الاسم:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report P8m48

نغير الاسم لـ Users ثم نضغط Enter من لوحة المفاتيح. نضغط بالزر الأيمن من الفأرة على الـ Users لنضيف خاصية جديدة من:


  • Add
  • Property

الآن نجد الخاصية الجديدة في حالة تحرير الاسم، نكتب ID، ثم من لوحة
المفاتيح نضغط Enter مرتين، ليتم اعتماد الاسم وإنشاء خاصية جديدة اسمها
Username:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report ZYQ3b

بعد أن أضفنا خاصية الـ Username إما أن نضغط من لوحة المفاتيح Enter ليتم
إنشاء خاصية جديدة، وإما أن نضغط بالزر الأيمن للفأرة ونختار كما فعلنا أول
مرة، لنضيف خاصية اسمها Password وخاصيتين أخريين اسمهما Admin و Active:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report SBMak

بقي علينا أن نضبط الخصائص، نحدد ID ثم نضغط F4 لننتقل لنافذة Properties
أو بالضغط عليها بزر الفأرة الأيمن ثم اختيار Properties، لنجعل خصائص
الخاصية ID كما يلي:



الكود:
Auto Generated Value = True
Auto-Sync = OnInsert
Primary Key = True
Read Only = True
Source = ID
Type = Integer (System.Int32)

(خاصية Source مهمة جداً، فهي لتحديد العمود المرتبط من قاعدة
البيانات بهذه الخاصية، إذا كان فارغاً سيكون هناك خطأ في إنشاء قاعدة
البيانات، ليتم تجاوز إنشاء هذه العامود، وإكمال الباقي)
خصائص الخاصية Username:


كود:

الكود:
Source = Username

النوع لن نغير فيه شيء لأنه من نوع نص String وهو ما نريد، لكن
سيأخذ الحجم الافتراضي من طول النص في قاعدة البيانات وهو 4000 حرف، وهذا
حجم كبير، لذلك هناك خاصية اسمها Server Date Type تمكننا من تحديد النوع،
سنكتب فيها (nvarchar(20 لنحدد طول النص بـ 20 حرف كحد أقصى.

خصائص الخاصية Password:



الكود:
Source = Password
Server Date Type = nvarchar(20)

خصائص الخاصية Admin:



الكود:
Source = Admin
Type = Boolean (System.Boolean)

خصائص الخاصية Active:



الكود:
Source = Active
Type = Boolean (System.Boolean)

الآن وقد أتممنا هذه الفئة، سننشئ فئة جديدة اسمها Persons، فيها هذه الخصائص:


  1. ID
  2. Name
  3. Address
  4. Notes

خصائص الخاصية ID نجعلها كما في الفئة السابقة (يمكننا نسخ الخاصية ID
من الفئة Users ولصقها في الفئة الجديدة لتحمل جميل الخصائص، دون عناء
التغيير)، خصائص الخاصية Name كما في الـ Username من الفئة السابقة أيضاً،
الخاصية Address فقط نزيد من قيمه عدد الحروف في خاصية Server Date Type
لتساوي (nvarchar(50، والخاصية Note نغير فيها خاصية الـ Source لتكون نفس
الاسم، كما فعلنا في السابق، وندع Server Date Type فارغة لتكون في أعلى
قيمة وهي 4000 حرف، ولا ننسى أنها من المحتمل أن تكون فارغة (أي لا يتم
اسناد أي قيم لها من المستخدم)، لذلك نضبط الخاصية Nullable لتساوي True.

الآن ننشئ فئة جديدة اسمها PhoneNumbers، فيها من الخصائص ما يلي:
ID وخصائصها كالسابق.
PersonID وخصائصها: (Type = Integer (System.Int32، ولا ننسى أن نضبط خاصية الـ Source. (هذه الخاصية للعلاقة ما بين الجدولين).
Phone وخصائصها: (Server Date Type = nvarchar(10، ولا ننسى أيضاً خاصية الـ Source.

الآن نحدد فئة الـ Users ونذهب لنافذة الخصائص لنضع قيمة الخاصية Source بنفس اسم الفئة، وكذلك باقي الفئات.
الفئة Users: الخاصية Source = Users
الفئة Persons: الخاصية Source = Persons
الفئة PhoneNumbers: الخاصية Source = PhoneNumbers

قد شارفنا على الانتهاء من العمل في قاعدة البيانات، بقي أن نربط جدول الأشخاص مع جدول الأرقم بعلاقة.

avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف أحمد مناع الأربعاء مايو 08, 2013 2:59 pm

بسم الله ما شاء الله عليك أخى الكريم ....جزاك الله خيرا و اتمنى أن تبقى معنا خصوصا أن قسم الدونت نت يعانى من قلة الدروس


تحياتى القلبية لك ....و جزاك الله خيرا

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف khasd الأربعاء مايو 08, 2013 4:05 pm

بارك الله فيك اخي و انتظرنا فرصة من العلم فجئتنا بها وحي منزلا
khasd
khasd
....
....

تاريخ التسجيل : 23/05/2012
المساهمات : 57
النقاط : 102
التقيم : 1
الدولة : المغرب
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الأربعاء مايو 08, 2013 5:48 pm

أحمد مناع كتب:بسم الله ما شاء الله عليك أخى الكريم ....جزاك الله خيرا و اتمنى أن تبقى معنا خصوصا أن قسم الدونت نت يعانى من قلة الدروس


تحياتى القلبية لك ....و جزاك الله خيرا

وجزاك بالمثل إن شاء الله، سأبقى معكم بإذنه تعالى وأطرح مواضيع في شتى الأمور إن شاء الله....
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الأربعاء مايو 08, 2013 5:51 pm

qui cherche trouve كتب:بارك الله فيك اخي و انتظرنا فرصة من العلم فجئتنا بها وحي منزلا
وبارك فيك، كلنا متعلمين نأخذ عن بعض ونتساعد إن شاء الله....
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف نجلاء فتحي الأربعاء مايو 08, 2013 5:56 pm

الله يبارك فيك يا أخى .....أصل إدارة المنتدى مقصر معانا فى الدوت نت
نجلاء فتحي
نجلاء فتحي
....
....

تاريخ التسجيل : 20/02/2011
المساهمات : 53
النقاط : 103
التقيم : 0
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الأربعاء مايو 08, 2013 6:26 pm

نجلاء فتحي كتب:الله يبارك فيك يا أخى .....أصل إدارة المنتدى مقصر معانا فى الدوت نت
وبارك فيك إن شاء الله، الأدراة تبذل جهدها من أجل الرقي بالمنتدى، يدا بيد نحن الأعضاء لنتساعد من أجل ذلك.
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الخميس مايو 09, 2013 2:58 pm

لننشئ العلاقة بين فئة Persons وفئة PhoneNumbers، ولكن قبل ذلك لنعرف ما هي العلاقات.

في بعض الأحيان يكون لشخص ما أكثر من رقم هاتف، قد يملك الشخص ثلاث هواتف
أو أربعة أو عشرة، فليس هناك حصر، لهذا لا نستطيع أن نضيف خاصية رقم الهاتف
في الفئة Persons، لأنها ببساطه سوف تحمل رقم واحد فقط، فالحل يكون بإضافة
جدول جديد يتم تخزين الأرقام فيه، والسؤال الذي يطرح نفسه الآن هو: كيف
لنا أن نميز أن هذا الرقم هو لفلان وهذا الرقم لآخر؟! الإجابة هي بإنشاء
علاقة بين الجدولين الرئيسي وهو Persons والفرعي وهو PhoneNumbers، من خلال
ربط العمود ID الذي يتم توليده تلقائياً كلما أضفنا اسماً جديداً، بالعمود
PersonID والذي من نفس النوع Integer، بهذا نكون قد عرفنا أن رقم الهاتف
يعود لاسم المستخدم والذي رقمه هو مخزن في حقل PersonID.

لننشئ العلاقة بالتوجه لنافذة الأدوات وتحديد الأداة Association:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report K7Orm

ثم النقر مرة على الفئة Persons والتوجه للفئة PhoneNumbers والنقر عليها أيضاً مرةً واحدةً، لنرى هذه النافذة:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Wtblw

نختار من العمود الأول في الجدول من هذه النافذة، عمود ID ومن العمود الثاني نختار عمود PersonID:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report CxfMM

ثم موافق ليبدو الجدولين أو الفئتين كما يلي:


إنشاء مشروع باستخدام sql server و linq وتقارير crystal report AZlI7

الآن نضغط بزر الفأرة الأيمن على مكان فارغ في المصمم ونختار Properties،
في خاصية Context Namespace نضع القيمة DB، وفي خاصية Entity Namespace نضع
القيمة DB أيضاً، وخاصية Name نجعلها PhoneBookDB، ثم خاصية Connection
نختار منها New لتطالعنا هذه النافذة:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report VfEGr

نختار منها الأول وهو Microsoft SQL Server، ثم Continue لنرى:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Snr8Z

نكتب في الـ Combobox التابع لـ Server name: .\sqlexpress، ثم نختبر
الإتصال بالضغط على زر Test Connection، فإن نجح نضغط OK، وإلا نراجع خدمة
الـ SQL Server.

الآن وقد انتهينا من قاعدة البيانات، نغلق التبويب الخاص بها ثم نذهب لـ
Solution Explorer، ونختار منها Form1 لنفتحه في تبويب التصميم، ننقر عليه
نقراً مزدوجاً لنذهب لتبويب الكود داخل حدث التحميل، نعرف متغير عام خارج
أي حدث:
:#C




الكود:
private DB.PhoneBookDB db = new DB.PhoneBookDB();

:VB




الكود:
Private db As New DB.PhoneBookDB()

سيكون شكل الكود للآن كمان يلي:
:#C
الكود:


public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private DB.PhoneBookDB db = new DB.PhoneBookDB();

        private void MainForm_Load(object sender, EventArgs e)
        {

        }
    }


:VB




الكود:
Public Class MainForm

    Private db As New DB.PhoneBookDB()

    Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

إلى الآن لم ننشئ قاعدة البيانات، لعمل ذلك نكتب في حدث التحميل:
:#C




الكود:
if(!db.DatabaseExists())
    try
    {
        db.CreateDatabase();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }


:VB




الكود:
If Not db.DatabaseExists() Then
    Try
        db.CreateDatabase()

    Catch ex As Exception
        MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Exit Sub
    End Try
End If
اختبرنا ما إذا لم تكن قاعدة البيانات موجود، وعلى ذلك يتم إنشائها
أو الخروج من الإجراء. إن حصل خطأ وقد يكون ذلك بسبب أن خدمة SQL Server
متوقفة أو أننا لم نكمل خاصية الـ Source للفئات وخصائصها، فإن كانت
الأخرى، كما قلنا سيتم إنشاء قاعدة البيانات، ولكن بتجاوز الفئة أو الخاصية
التي لم يكتب قيمة لها في الـ Source، فإن أردنا حذف قاعدة البيانات نكتب:
:#C




الكود:
db.DeleteDatabase();


:VB




الكود:
db.DeleteDatabase()

نعمل تشغيل للبرنامج ليتم إنشاء قاعدة البيانات، ثم نعود لفتح فئة
محتوى البيانات من Solution Explorer والتي اسميناها PhoneBookDB.dbml،
لنربط قاعدة البيانات مع محتوى البيانات، في أي مكان فارغ من المصمم نختار
بعد الضغط بزر الفأرة الأيمن Properties، ثم من الخصائص نختار Connection
ثم New ثم Microsoft SQL Server ثم Continue وبعد ذلك نكتب في اسم السيرفر
.\sqlexpress، ثم نختار قاعدة البيانات من قائمة Select or enter a
database name والتي اسميناها PhoneBookDB:

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report 42hy9

نعود للنموذج بعد أن أتممنا بفضل الله إنشاء قاعدة البيانات وربطها مع الفئة، لنعمل مدير للبرنامج:
:#C




الكود:
var users = from d in db.Users
            where d.Admin
            select d;


:VB




الكود:
Dim users = From d In db.Users
            Where d.Admin
            Select d

هذه جملة التحديد في تقنية Linq وصيغتها كما رأينا، بعد كملة From
نكتب اسم متغير يمثل الجدول الذي نكتب اسمه بعد ذلك وهو هنا Users، والشرط
إذا كان Admin يساوي True، نقوم بجلب جميع المستخدمين في حال كان المستخدم
مدير للبرنامج، فإن كان ينتهي الإجراء وإلا سنعمل مدير افتراضي للبرنامج،
لنختبر ذلك:
:#C




الكود:
if (users.Count() == 0) { }


:VB




الكود:
If users.Count() = 0 Then

End If

إذا كان مجموع القيم المحددة من الجدول تساوي 0، فهذا يعني أنه لا يوجد مدير، لعمل مدير للبرنامج نكتب بين فكي جملة الشرط السابقة:
:#C



الكود:
DB.Users admin = new DB.Users();
admin.Username = "Admin";
admin.Password = "Admin";
admin.Admin = true;
admin.Active = true;

:VB




الكود:
Dim admin As New DB.Users
admin.Username = "Admin"
admin.Password = "Admin"
admin.Admin = True
admin.Active = True

في السطر الأول عرفنا متغير من الفئة Admin، ثم بعد ذلك اسندنا قيم
للخصائص المعرفة داخل الفئة، للآن لم يتم حفظ البيانات التي عملناها، لذلك
نكمل على الكود السابق:
:#C




الكود:
db.Users.InsertOnSubmit(admin);
db.SubmitChanges();


:VB




الكود:
db.Users.InsertOnSubmit(admin)
db.SubmitChanges()

في السطر الأول استخدمنا الإجراء InsertOnSubmit التابع للخاصية
Users وأرسلنا في الوسيطة المتغير الذي عرفناه فوق وهو admin ليتم إدخاله
بقاعدة البيانات بعد أن نرسل أمر حفظ التغييرات، وأرسلنا التغييرات لقاعدة
البيانات بالسطر:
db.SubmitChanges()
ليتم بذلك حفظ التغييرات. هكذا أنشأنا قاعدة البيانات كمان أنشأنا مدير للبرنامج.
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف المبرمج الطموح الإثنين مايو 27, 2013 6:51 am

درس رائع بارك الله فيك
المبرمج الطموح
المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 207
النقاط : 368
التقيم : 17
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف null الإثنين يونيو 03, 2013 4:25 pm

نحمده ونصلي على رسوله الكريم

هذا كتاب الكتروني به شرح كامل إن شاء الله
avatar
null
.
.

تاريخ التسجيل : 06/05/2013
المساهمات : 8
النقاط : 10
التقيم : 0
الدولة : لبنان
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

إنشاء مشروع باستخدام sql server و linq وتقارير crystal report Empty رد: إنشاء مشروع باستخدام sql server و linq وتقارير crystal report

مُساهمة من طرف أحمد مناع الثلاثاء يونيو 04, 2013 4:19 am

أشكرك يا سيد دريم إنك مازلت معنا .....جزاك الله خيراً

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى