تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
للمبتدئين في السي شارب _ كيفية الاتصال بقاعدة البيانات والتعامل معها
#1
السلام عليكم ورحمة الله وبرحمة الله وبركاته
لا جديد في هذا المجال انما هي محاولة لتبسيط الامر أكثر مماهو بسيط أساساً في التعامل مع قواعد البيانات باستخدام ADO.NET
من المؤكد قد سبقني اخواني بشرح هذه المسألة مرات ومرات لكن من باب التذكير لا أكثر
سنستخدم سي شارب نعم ذاك البعبع الذي كنت لا اطيق منظر اي محرر كود مليء بالاقواس والفاصلة المنقوطة وجملة اللوب الغريبة الشكل
وسنرى بالتطبيق العملي كيف أنه اسهل بكثير من الفيجوال بيسك نعم نعم انا كنت مثلك أكره السي شارب ولكن الفيجوال بيسك لا تكمل معك المشوار اذا كان طموحك
اكبر من إنشاء برامج للويندوز فقط فالعالم تتسع افاقه كل يوم ونحن اصحاب البيسك مكانك سر !!!
تعال معي

انشيء قاعدة بيانات ليكن اسمها مثلا
xx.mdb

وننشيء بداخلها جدول بسيط عبارة عن ثلاثة حقول ونسميهم كما في الصورة ادناه


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


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

ثم نكمل الخطوة الاخيرة

الان اذهب للكلاس الذي انشأناه وانسخ كامل الكلاس من هنا 
PHP كود :
// سنحتاج للمكتبتين التاليتين 
using System.Data;
using System.Data.OleDb;
    // اسم الكلاس Connection
    class Connection
    
{
        // تغير اسم قاعدة البيانات حسب ما لديك
        string db ".\\xx.mdb";
        // عندما يكون للقاعدة كلمة مرور
        string pass "***";
        // اذا كانت قاعدة البيانات 2007 فأعلى 
        string pv "Microsoft.Ace.OLEDB.12.0";
        // اذا كانت البيانات أقديم من 2007
        string pv1 "Microsoft.Jet.OLEDB.4.0";
        //تعريف المعاملات للاتصال باقاعدة والجدول
     // الاتصال بالقاعدة
        public OleDbConnection Cn = new OleDbConnection();
        // للاتصال بالجدول والعمليات عليه
        public OleDbCommand Cmd = new OleDbCommand();
        // نعرف الداتا تيبل لاستخدمها في عرض البيانات مثلا في جريد فيو
        public DataTable dt = new DataTable();
        // الان نكتب كود الاتصال والتهيئة لاجراء العمليات 
        // عرض
        //بحث
        //اضافة
        // حذف
        // تعديل
         // كل تلك العمليات تمر في الجملة SQL
         //مهمة الكود أدناة تنفيذ ما تأمره به في الجملة
         // في الفورم سنتعرف على العمليات
            public void Rec(string SQL)
        {
            Cn.ResetState();
        //هنا سأتصل بقاعدة بيانات 203 
            Cn.ConnectionString = ("Provider="+pv1+";Data Source=" db+"; user id=admin;jet oledb:database password="+pass);    
        
// نفتح الاتصال بقاعدة البيانات  
            Cn.Open();
        // نجهز معامل الاتصال بالجداول بالشكل التالي
            Cmd.Connection Cn;
        Cmd.CommandText = (SQL);
             
    

نغلق الكلاس الان ونتوجه للفورم ودبل كلك عليه لنجد امامنا محرر الكود نمسح جميع ما به ونلصق الكود التالي باعتباره Form1
PHP كود :
using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace 
WindowsFormsApplication3
{
    public partial class Form1 Form
    
{
        // نبدأ باستدعاء الكلاس الذي اعددنا مسبقا بالشكل الاتي
        Connection con = new Connection();
       // بهذا الشكل سيصبح الكلاس كأي اداة لها وظائف وخصائص
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object senderEventArgs e)
        {
            // هنا سنقوم بعملية استعلام عادية جداً انظر للجملة بين الاقواس
            con.Rec("select * from Users");
            // في الكود التالي نقوم بملء الداتا تيبل بنتيجة الجملة السابقة
            con.dt.Load(con.Cmd.ExecuteReader());
            // أخيرا سنعرض النتائج في الجريد فيو
            dataGridView1.DataSource con.dt;
              // نغلق الاتصال فلم نعد بحاجة إليه
 
           con.Cn.Close();
 
           // ننهي كذلك معامل الاتصال من الذاكرة 
 
           con.Cmd.Dispose();
 
           // شغل المشروع وشاهد
        }

        private void backgroundWorker1_DoWork(object senderDoWorkEventArgs e)
        {

        }
    }


الان نذهب لقاعدة البيانات التي انشأناها وننسخها الى مجلد المشروع في مجلد Debug الموجود داخل المجلد Bin
نشغل المشروع ونتأكد من الاتصال وعرض الجدول الفارغ من البيانات على اداة عرض البيانات DataGirdView


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

عدنا والعود أحمد بحمد الله

الان دبل كلك على البتن ونكتب كود الاضافة بالشكل التالي
PHP كود :
 //كود الاصافة في الجدول تحت حد البتن كلك
 
       private void button1_Click(object senderEventArgs e)
 
       {
 
           //نستدعي الاجراء من الكلاس ونكتب جملة الاضافة بالشكل التالي
 
           con.Rec("Insert into Users (Username,Pass) Values (@Username,@Pass)");
 
           // نضيف الباراميترات الى الحقول
 
           con.Cmd.Parameters.AddWithValue("@Username"textBox1.Text);
 
           con.Cmd.Parameters.AddWithValue("@Pass"textBox2.Text);
 
           con.Cmd.ExecuteNonQuery();
 
           // نغلق الاتصال فلم نعد بحاجة إليه
 
           con.Cn.Close();
 
           // ننهي كذلك معامل الاتصال من الذاكرة 
 
           con.Cmd.Dispose();
 
           //بعد عملية الاضافة نحن بحاجة لعرض البيانات في الجريد فيو فنوقم باستدعاء حدث الفورم لود بالشكل التالي
 
   con.dt.Clear();
 
           Form1_Load(sendere);
 
       
شغل المشروع واختبر كود الاضافة


الان بعد ان استطعنا الاضافة  نعمل على الحذف والحذف سيكون بطريقة مختلفة نوعا ما عن الطرق التقليدية بوضع بتن و و و
سنقوم بعمل كود الحذف في الحدث دبل كلك للجريد فيو كالتالي
PHP كود :
     // الان للحذف سنقوم بدبل كلك على السف في الجريد
 
       //وتظهر لنا رسالة بالموافق على الحذف من عدمه
 
       private void dataGridView1_DoubleClick(object senderEventArgs e)
 
       {
 
           try
            
{
 
               // لايجاد قيمة الخلية الاولى التي تمثل قيمة حقل الاندكس في الجدول 
 
               int indx int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
 
               string name dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

 
               //انشاء رسالة التنبيه
 
               DialogResult  result MessageBox.Show(" هل ترغب بحذف السجل رقم "+indx.ToString() +" " name,"تنبيه",MessageBoxButtons.YesNo);
 
              // الشرط التالي اذا كان الاختيار للبتن لا سنغلي الاجراء بالكامل
 
               if (result == DialogResult.No) {
 
                   return;
 
               }
 
               // في حال ال    غط على الموافقة سنقوم بحذف السجل كالتاالي
 
               con.Rec("Delete * from Users where id=" indx);
 
               con.Cmd.ExecuteNonQuery();
 
               con.Cn.Close();
 
               con.Cmd.Dispose();
 
               // نقرأ البيانات بعد الحذف من الجدول
 
               con.dt.Clear();
 
               Form1_Load(sendere);

 
           }
 
           catch { }
 
  
        

نشغل المشروع ونتابع

سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#2


الان نريد اخذ اسم المستخدم وكلمة المرور وكذلك رقم المستخدم في الجدول سنعمد مثلا الى الحدث كلك للجريد فيو ونكتب الكود التالي
PHP كود :
private void dataGridView1_Click(object senderEventArgs e)
 
       {
 
           try
            
{
 
               int indx int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
 
               string name dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
 
               string pass dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
 
               textBox3.Text name;
 
               textBox4.Text pass;
 
              label5.Text indx.ToString();
 
           }
 
           catch { }

 
       

ستكون نتيجة الكود السابق كالتالي كماهو في الصورة ادناه

الان سنضيف لكود الحذف  اضافة صغيرة وسيصبح شكله النهائي هكذا
PHP كود :
       // الان للحذف سنقوم بدبل كلك على السف في الجريد
       //وتظهر لنا رسالة بالموافق على الحذف من عدمه
       private void dataGridView1_DoubleClick(object senderEventArgs e)
       {
           try
           
{
               // لايجاد قيمة الخلية الاولى التي تمثل قيمة حقل الاندكس في الجدول 
               int indx int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
               string name dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
               string pass dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
         
               
//انشاء رسالة التنبيه
               DialogResult  result MessageBox.Show(" هل ترغب بحذف السجل رقم "+indx.ToString() +" " name,"تنبيه",MessageBoxButtons.YesNo);
               // الشرط التالي اذا كان الاختيار للبتن لا سنغلي الاجراء بالكامل
               if (result == DialogResult.No)
               {
                   this.Text="";
                   return;
               }
               else
               
{
                   // في حال ال    غط على الموافقة سنقوم بحذف السجل كالتاالي
                   con.Rec("Delete * from Users where id=" indx.ToString());
                   con.Cmd.ExecuteNonQuery();
                   con.Cn.Close();
                   con.Cmd.Dispose();
                   // نقرأ البيانات بعد الحذف من الجدول
                   con.dt.Clear();
                   Form1_Load(sendere);
                   textBox3.Text "";
                   textBox4.Text "";
                   label5.Text "";
               }
           }
           catch { }
  
       

وبالضغط على بتن التعديل نضيف اليه الكود التالي
PHP كود :
      // كود تحديث البيانات يكون بالشكل التالي
 
       private void button2_Click(object senderEventArgs e)
 
       {
 
           con.Rec("Update Users set Username=@Username,Pass=@Pass where id =" label5.Text.ToString());
 
           con.Cmd.Parameters.AddWithValue("@Username"textBox3.Text);
 
           con.Cmd.Parameters.AddWithValue("@Pass"textBox4.Text);
 
           con.Cmd.ExecuteNonQuery();
 
           con.Cn.Close();     
            con
.Cmd.Dispose();          
            con
.dt.Clear();
 
           Form1_Load(sendere);
 
       
كما ترى في الصورة ادناه تم تغيير كلمة المرور مثلا للمستخدم
Omar
من 123
إلى 7777777


يتبقى لنا كود البحث عن المستخدم انتظروني
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#3
لعملية البحث في مثل حالنا هذا لدينا طريقتان
1_البحث في الجدول وعرض الناتج في الجريد فيو
2_البحث في الجريد فيو مباشر
* بما ان البرنامج بسيط سنبحث في الجريد مباشرة وسنى كيف يتم ذلك تابع معي
نعود للتصميم ونضع تكست للبحث كما في الصورة

الان نذهب للحدث keyup أو كي KeyDown كما يحلو لك !!!
سنختار هنا مثلا KeyDown
ويكون كود البحث في الجريد كالتالي
PHP كود :
    private void textBox5_KeyDown(object senderKeyEventArgs e)
 
       {
 
         
            
// اذا كان التكست فارغ نلغي البحث
 
           if (textBox5.Text == "") { return; }
 
           for (int i 0i<= dataGridView1.Rows.Count 2i++)
 
           {
 
               // سنبحث في عمود الاسماء كالتالي
 
            
                if 
(dataGridView1.Rows[i].Cells[1].Value.ToString().Contains(textBox5.Text))
 
               {
 
                   // اذا صادف وجود اي حرف في التكست ما يماثلة في قيمة حقل الجريد في عمود الاسماء ستتوقف عملية البحث ويتم تحديد الاسم
 
                 dataGridView1.ClearSelection();
 
                   dataGridView1.Rows[i].Selected true;
 
dataGridView1.FirstDisplayedScrollingRowIndex i;
 
                   return;
 
               }

 
           }
 
       


طيب عملنا جدول مستخدمين بحمد الله واجرينا عليه كافة العمليات
إضافة - حذف تعديل بحث يتبقى الطباعة؟ ما نحتاجها في هذا الحال
ايش رأيكم نعمل صلاحيات للمستخدمين؟ اوكي بإذن الله نعمل صلاحيات للمستخدمين اللي ندخلهم في الجدول
لكن غداً إن شاء الله والمعذرة كان الشرح متفطع ورديء خلوها على الله
دعواتكم
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#4
سلمت يمينك

أنا معاك أن شاء الله فى التحول الى  #C
ونحمد الله بتفضلك علينا بهذا الشرح السلس
جزاك الله كل خير
الرد }}}
تم الشكر بواسطة: أبو عمر , Sajad , asemshahen5 , ابراهيم ايبو
#5
حياك استاذ محمود
وتسلم كلك على بعضك يا رب
إن شاء الله نستفيد مع بعض اليوم إن شاء الله نستكمل إضافة الصلاحيات للمستخدمين
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#6
لن نطيل في موضوع الصلاحيات سنقتصر على مثال يشرح الفكرة نقوم بإنشاء جدول في قاعدة البيانات على النحو التالي :

فقط فهرس للجدول وحقل بمسمى admin القيمة رقم
تستطيع جعله Yes/No كما يحلو لك كل الطرق توصل للروما ايطاليا صارت زحمة بسبب هذا المثل Shy Shy
الان نذهب للفورم الذي كنا نعمل سابقا وتضيف فقط كومبوا بوكس وليبل للتسمية كما في الصورة الاتية

سنضيف إليه فقط عنصرين Admin - User بالترتيب حيث ادمن يأخذ الاندكس 0 و user يأخذ 1
اما عن طريق الكود ا التصميم سأترك الخيار لك سأريك فقط الاضافة اثناء التصميم في تصميم النموذج تكون كالاتي

سنجعل الصلاحية للمستخدمين بعد عملية الاضافة وتكون مرتبطة بكود التعديل سنضرب عصفورين بحجر كيف؟
سنجعل البرنامج يتعامل مع اي مستخدم لم تضف له صلاحية وكأنه بحاجة الى تنشيط حساب أي إنه طالما لم
تسجل له اي صلاحية في الجدول Per فلن يكون قادرا على أي اي شي مطلقاً فقط ستظهر له رسالة
" لم يتم تفعيل حسابك بعد !"
اذهب معي الى الحدث فورم لود ونكتب الجملة التي ستأخذ القيم من الجدول الاول من الحقل ID وتقارنها بالقيم الموجودة في الجدول الثاني في الحقل Admin
الخيارات لعمل ذلك متعددة ففي البرمجة الطرق للوصول للنتيجة متعددة ولكن هناك طريق آمن وطريق يتعب من يسلكه !
سنضيف هذا الكود باستخدم Inner join
PHP كود :
/*
            الان سنتحقق من الصلاحيات بالطريقة التالية
            */
         
            
con.Rec("select Users.*, Per.Admin from Users Inner join Per On Users.ID=Per.Admin");
          
            if (
con.Cmd.ExecuteScalar() ==null)
            {
                
MessageBox.Show("لا تمتلك اي صلاحيات غير استعراض البيانات فقط");
                
button1.Enabled false;
                
button2.Enabled false;
                
dataGridView1.Enabled false;
                return ;
            }
            else
            {
                
button1.Enabled true;
                
button2.Enabled true;
                
dataGridView1.Enabled true;
            } 
اذا شغلنا المشروع فستكون نتيجة جملة الاستعلام فارغة ولن نتكمن من عمل اي شيء
انظر للصور ادناه



الان اذهب للجدول الذي انشأناه مؤخراً وقم بإضافة رقم أول مستخدم في مثالنا هو Omar
ورقمه 1
نضع الرقم 1 فقط ونضغط انتر للحفظ في الجدول كما في الصورة التالية

وشغل المشروع ستجد نفسك قادر على الاضافة الحذف التعديل
والان سنذهب لكود التحرير الموجود تحت البتن
Button2_Click
وسنضيف اليه جملة اضافة الصلاحيات للمستخدمين اذا اردناهم يكونون ادامن فقط
تابع معي
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#7
كما قلنا سابقا سنكتب كود اضافة خاصية الادمنية للبرنامج في الجدول من خلال البتن الخاص بالتعديل  سنضيف اليه فقط هاتين الجملتين فقط
PHP كود :
if (comboBox1.Text == "Admin") { 
 
           con.Rec("Insert into Per (admin) Values('" label5.Text ")");
 
           con.Cmd.ExecuteNonQuery();
 
       
الان نحتاج عملنا يكون شبه واقعي اي اننا نصمم واجهة دخلو مستخدمين ونرى كيف تعمل فكرة الصلاحياة بشكل فاعل
انشيء فورم جديد Form2
فقط اضف عليه Label Button Textbox
كما الشكل الاتي

الان لنعد للفورم الاول
Form1
وفي حدث الفورم لود نجعل اول اجراء هو ظهور الفورم الثاني
PHP كود :
      private void Form1_Load(object senderEventArgs e)
 
       {
 
           Form fr = new Form2(); fr.ShowDialog();
//................
//..................
//............... 
الان سنذهب للجملة التي كتبناها مسبقا
select Inner Join On
تذكرون اين؟
نعم انها اخر اجراء للفورم لود
هذا شكلها
PHP كود :
           con.Rec("select Users.*, Per.Admin from Users Inner join Per On Users.ID=Per.Admin); 
الان راح مضيف الشطر الى الجملة كالتالي
PHP كود :
   con.Rec("select Users.*, Per.Admin from Users Inner join Per On Users.ID=Per.Admin where Per.admin="int.Parse(this.Text.ToString())); 
نعم سنقرأ عنوان الفورم لانه سيحمل رقم المستخدم من الفورم الثاني انشأناه
الان نأتي للفورم الثاني  وسنكتب في حدث البتن كلك الكود التالي
PHP كود :
// في التصاريح سنعرف الكلاس لنتمكن من استخدام وظائفه
 
  
        Connection con 
= new Connection();
//كود البتن بالشكل التالي
 
private void button1_Click(object senderEventArgs e)
 
       {
 
           // نقرأ ما في التكست بوكس ونرى هل يوجد ما يطابقه في جدول المستخدمين؟
 
            con.Rec("select * from users where pass='"textBox1.Text.ToString()+"'");
 
           if (con.Cmd.ExecuteScalar() == null) {
 
               MessageBox.Show("كلمة المرة غير صحيحة !");
 
               return;
 
           };
 
           // سنجعل عنوان الفورم الاول يحمل رقم المستخدم بالشكل التالي
 
           foreach (Form ff in Application.OpenForms) {
 
               if (ff.Name == "Form1") {
 
                   ff.Text textBox1.Text;
 
               }
 
               this.Close();
 
           };
 
         

        

الان كما تلاحظ في الفورم الاول انني  استخدمت استدعاء الفورم لود في حالتين
الاضافة والتعديل
سنحذفهم ونضع كود خاص نستدعيه لهذه المهمة وسيكون كالتالي
PHP كود :
  private void reads() {
 
           // خذا الاجراء لقراءة البيانات من الجدول وعرضها
 
           // هنا سنقوم بعملية استعلام عادية جداً انظر للجملة بين الاقواس
 
           con.Rec("select * from Users");
 
           // في الكود التالي نقوم بملء الداتا تيبل بنتيجة الجملة السابقة
 
           con.dt.Load(con.Cmd.ExecuteReader());
 
           // أخيرا سنعرض النتائج في الجريد فيو
 
           dataGridView1.DataSource con.dt;
 
           // نغلق الاتصال فلم نعد بحاجة إليه
 
           con.Cn.Close();
 
           // ننهي كذلك معامل الاتصال من الذاكرة 
 
           con.Cmd.Dispose();
 
           // شغل المشروع وشاهد
 
       
الاجراءات التي كانت في الفورم لود اخذناه للخارج تحت  Reads
جميل؟
أكيدد لا صح؟ Shy
الان نشغل مشروعنا وندخل بأي حساب للمستخدمين
Omar  1
Ali        2
Muhammad  3
وراقب الصلاحيات
إلى هنا ارفع لكم المثال سائلا المولى عزّ وجل أن يعلمنا ما ينفعنا وينفعنا بما علمنا إنه ولي ذلك والقادر على كل شي
كنت أصبوا لان يكون المشروع اوسع قليلا مما هو عليه ولكن طرأ طاريء نسأل الله لنا ولكم العفو والعافية.
أعود وأذكّر هذا المثال من مبتديء لاخوانه المبتدئين وهي مجرد فكرة لا أكثر
فإن أحسنا فمن الله وإن اخطأنا فمن انفسنا والشيطان
أكتب ما تقرأون واستغفر الله لي ولكم






.zip   WindowsFormsApplication3.zip (الحجم : 691.79 ك ب / التحميلات : 362)
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#8
آفة العلم النسيان وآفة العمل الكسل
نسأل الله العفو والعافية
ورد في صحيح البخاري عن أنس بن مالك قال: كان النبي صلى الله عليه وسلم يقول: اللهم إني أعوذ بك من الهم والحزن والعجز والكسل والجبن والبخل وضلع الدين وغلبة الرجال.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#9
thank you sooo muchhhh
الرد }}}
تم الشكر بواسطة: asemshahen5 , asemshahen5 , ابراهيم ايبو
#10
احسنت اخي
بارك الله فيك
مشكور على المجهود الطيب
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  المتغيرات في السي شارب أبو عمر 4 10,318 17-01-23, 03:18 PM
آخر رد: vatedome04
  [درس فيديو] برمجه برنامج اداره مبيعات | سي شارب و LINQ kiki 2 7,008 10-05-21, 09:44 PM
آخر رد: ba2e44ca9a
  [C#.NET] دورة تصميم برنامج مبيعات احترافي باستخدام سي شارب C# and LINQ to SQL and Devexpress saidou23 3 10,353 13-03-21, 09:19 PM
آخر رد: bfdnfh
Photo [سلسلة تعليمية] دورة عمل مشروع مبيعات بلغة سي شارب باحترافية عالية (متجدد يوميا) عاصم النجار 9 9,290 08-12-20, 12:43 AM
آخر رد: عاصم النجار
  دورة متقدمة متمحورة حول كيفية إنشاء برنامج محاسبي متقدم C# & SQL Server & DevExpress thevirus 5 13,877 03-02-20, 03:31 PM
آخر رد: adelpiece
Heart [درس فيديو] الدرس الثالث + الرابع ( كود واحد فقط لعمل أضافة سجلات من البيانات داخل قاعدة البيانات ربيع الهمداني 2 6,224 27-12-19, 11:58 PM
آخر رد: ربيع الهمداني
Heart [درس فيديو] الدرس الثاني( كود واحد فقط لعمل أضافة سجلات من البيانات داخل قاعدة البيانات ) ربيع الهمداني 1 4,666 27-12-19, 12:25 AM
آخر رد: asemshahen5
Big Grin [C#.NET] دروس فيديو لتعليم سي شارب من البداية حتى الإحتراف باحطاب سوفت 9 13,584 16-10-18, 11:33 PM
آخر رد: nashaat
  [C#.NET] موقع دورة سي شارب مجانية الشاكي لله 6 9,308 17-11-17, 08:51 PM
آخر رد: قاسم
  دورة قواعد البيانات SQLite ولغة سي شارب المبرمج الطموح88 2 6,666 05-11-17, 11:34 PM
آخر رد: قاسم

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


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