تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] استيراد بيانات اصناف من الاكسيل لقاعدة بيانات البرنامج sql
#1
السلام عليكم ورحمة الله وبركاته.
نقاشي حول كيفية استيراد بيانات اصناف مثلا موجود بملف اكسيل للبرنامج بتاعي.
مثال: 
ان عندي برنامج بقاعدة بيانات سكوال سيرفر وعندي جدول اسمه product المنتاجات وفيه عدة
 اعمده (كود، اسم ، سعر شراء ، سعر البيع ، الخ...).
وموجود عندي ملف اكسيل فيه مثلا حوالى 2000 صنف 
فا انا عاوز اعمل استيراد للملف ده وبعدين هختار اسم الجدول بتاعي من قاعده البيانات الي عاوز ضيف فبه المنتاجات الي هو product هختار من list box وبعدين هيكون فيه مجموعة list box تاني بتظهر معايا بعدد الاعمده بتعت الجدول بتاعي وفي المقابل كمان بتظهر اعمدة الاكسيل.
لان طبعا ملف الاكسيل مش هيكون نفس ترتيب الجدول بتاعي بالنسبة لترتيب الاعمده فبالتالي ان هقدر اختار من ال list box بتعت اعمدة جدولي واعمده الاكسيل بحيث اقدر اطابق الاتنين ببعض علشان لما اعمل عملية الاستيراد كل بيانات الاكسيل تنزل في الاماكن المخصصة ليها في الجدول بتاعي.
اسف لو طولت في الشرح بس علشان تكون التفاصيل واضحه 
هل فيه طريقة نقدر نعمل بيها الكلام ده لاني دورت كتير مش لاقي اغلب الطرق الي موجوده اني اعرض الاكسيل في داتا جريد فيو بس 
ياريت لو حد عنده طريقة او شرح بيتكلم عن كده يفدني وشكرا.
الرد }}}
تم الشكر بواسطة:
#2
(29-12-21, 06:45 PM)mazentq كتب : السلام عليكم ورحمة الله وبركاته.
نقاشي حول كيفية استيراد بيانات اصناف مثلا موجود بملف اكسيل للبرنامج بتاعي.
مثال: 
ان عندي برنامج بقاعدة بيانات سكوال سيرفر وعندي جدول اسمه product المنتاجات وفيه عدة
 اعمده (كود، اسم ، سعر شراء ، سعر البيع ، الخ...).
وموجود عندي ملف اكسيل فيه مثلا حوالى 2000 صنف 
فا انا عاوز اعمل استيراد للملف ده وبعدين هختار اسم الجدول بتاعي من قاعده البيانات الي عاوز ضيف فبه المنتاجات الي هو product هختار من list box وبعدين هيكون فيه مجموعة list box تاني بتظهر معايا بعدد الاعمده بتعت الجدول بتاعي وفي المقابل كمان بتظهر اعمدة الاكسيل.
لان طبعا ملف الاكسيل مش هيكون نفس ترتيب الجدول بتاعي بالنسبة لترتيب الاعمده فبالتالي ان هقدر اختار من ال list box بتعت اعمدة جدولي واعمده الاكسيل بحيث اقدر اطابق الاتنين ببعض علشان لما اعمل عملية الاستيراد كل بيانات الاكسيل تنزل في الاماكن المخصصة ليها في الجدول بتاعي.
اسف لو طولت في الشرح بس علشان تكون التفاصيل واضحه 
هل فيه طريقة نقدر نعمل بيها الكلام ده لاني دورت كتير مش لاقي اغلب الطرق الي موجوده اني اعرض الاكسيل في داتا جريد فيو بس 
ياريت لو حد عنده طريقة او شرح بيتكلم عن كده يفدني وشكرا.

ياجماعة الى عندة اي فكره عن الموضوع ده ياريت يفيدنى علشان بدور علي الطريقة وشكرا
الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم ورحمة الله وبركاته
اخي الكريم 
قم بالتعامل مع ملف الاكسل كقاعدة بيانات واجلب البيانات الى داتاغرايد ثم مخصصة الاعمدة حسب قاعد بيانات السيكوال 
فمثلا في ملف الاكسل نفترض يوجد اسم المنتج والباركود والسعر وفي جدول السيكوال يوجد الاي دي (ترقيم تلقائي) الاسم والباركود والسعر وأعمدة أخرى
قم بانشاء الداتاغرايد بأعمدة مثل السكوال   واجلب بيانات الاكسل ثم قم بجملة حفظ صفوف الداتاغرايد عبر حلقة For  بدون الاي دي في جدول السيكوال
افضل من الليست بوكس
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: a7med saba
#4
(03-02-22, 10:39 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم 
قم بالتعامل مع ملف الاكسل كقاعدة بيانات واجلب البيانات الى داتاغرايد ثم مخصصة الاعمدة حسب قاعد بيانات السيكوال 
فمثلا في ملف الاكسل نفترض يوجد اسم المنتج والباركود والسعر وفي جدول السيكوال يوجد الاي دي (ترقيم تلقائي) الاسم والباركود والسعر وأعمدة أخرى
قم بانشاء الداتاغرايد بأعمدة مثل السكوال   واجلب بيانات الاكسل ثم قم بجملة حفظ صفوف الداتاغرايد عبر حلقة For  بدون الاي دي في جدول السيكوال
افضل من الليست بوكس

طيب الترتيب بتاع الاعمدة طبيعي مش هيكون مطابق لجدول الاصناف الي في قاعدة البيانات عندي فانا بستخدم ال ليست بوكس علشان اطابق كل عمود في الاكسيل مع الجدول بتاعي 
هل فيه مثال عملى علي الكلام ده موجود اقدر احمله
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته
اخي الكريم 
هذا مثال بسيط لجلب بيانات من الاكسيل وعرضها في الداتاغرايد العلوية تعرض الحقول حسب الاكسل
ثم نحفظ البيانات فقط حقلي الاسم والراتب  في قاعدة البيانات (اخترت الاكسس  للسهولة ويمكنك التغيير الى السيكوال)
بعدها يتم عرض البيانات التي حفظت في الاكسس في الداتاغرايد السفلية


الملفات المرفقة
.zip   ExelDataToAccess.zip (الحجم : 82.78 ك ب / التحميلات : 49)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#6
(04-02-22, 02:00 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم 
هذا مثال بسيط لجلب بيانات من الاكسيل وعرضها في الداتاغرايد العلوية تعرض الحقول حسب الاكسل
ثم نحفظ البيانات فقط حقلي الاسم والراتب  في قاعدة البيانات (اخترت الاكسس  للسهولة ويمكنك التغيير الى السيكوال)
بعدها يتم عرض البيانات التي حفظت في الاكسس في الداتاغرايد السفلية

الف شكر يا غلى هحاول ان اعدل فيهم علشان يتم الاستيراد بناء على الاختيار من ليست بوكس
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#7
السلام عليكم ورحمة الله وبركاته
اخي الكريم انت لست بحاجة الى ليست بوكس لتضع فيها السجلات وتختار منها
قم بعمل التالي :
اضف عمود الى الداتاغرايد العلوية وأسمه "Selec" والعنوان ايضا "Selec" واجعله من نوع CheckBox بحيث يمكنك اختيار السجلات التي تريد حفظها
ثم استبدل كود الحفظ السابق بالتالي :
كود :
private void Btn_SaveToAccess_Click(object sender, EventArgs e)
   {
       OleDbCommand Cmd = new OleDbCommand();
       bool aa;
       for (int i = 0; i < DGV_TableExcel.Rows.Count; i++)
       {
           aa=Convert.ToBoolean(DGV_TableExcel.Rows[i].Cells["Selec"].Value);
           if (aa == true)
           {

           Cmd = new OleDbCommand("insert into Table1(Cv_Name,Cv_Salary) Values(@Cv_Name,@Cv_Salary)", Con);
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Name", OleDbType.VarWChar)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Name"].Value.ToString();
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Salary", OleDbType.Decimal)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Salary"].Value;
           if (Con.State == ConnectionState.Closed) Con.Open();
           Cmd.ExecuteNonQuery();
           Con.Close();
           }
       }

       MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information);
       SelectAll_Table1();
   }
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: a7med saba
#8
(04-02-22, 10:54 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم انت لست بحاجة الى ليست بوكس لتضع فيها السجلات وتختار منها
قم بعمل التالي :
اضف عمود الى الداتاغرايد العلوية وأسمه "Selec" والعنوان ايضا "Selec" واجعله من نوع CheckBox بحيث يمكنك اختيار السجلات التي تريد حفظها
ثم استبدل كود الحفظ السابق بالتالي :
كود :
private void Btn_SaveToAccess_Click(object sender, EventArgs e)
   {
       OleDbCommand Cmd = new OleDbCommand();
       bool aa;
       for (int i = 0; i < DGV_TableExcel.Rows.Count; i++)
       {
           aa=Convert.ToBoolean(DGV_TableExcel.Rows[i].Cells["Selec"].Value);
           if (aa == true)
           {

           Cmd = new OleDbCommand("insert into Table1(Cv_Name,Cv_Salary) Values(@Cv_Name,@Cv_Salary)", Con);
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Name", OleDbType.VarWChar)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Name"].Value.ToString();
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Salary", OleDbType.Decimal)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Salary"].Value;
           if (Con.State == ConnectionState.Closed) Con.Open();
           Cmd.ExecuteNonQuery();
           Con.Close();
           }
       }

       MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information);
       SelectAll_Table1();
   }
تمام بس ان انشاء الله هعمل حاجة متقدمة شوية يعني مثلا مش عاوز اكتب في الكود اسماء الاعمدة في الاكسيل ان بتاعمل مع اي ملف عادي وبيجبلي اي اعمدة اي كانت وشكرا علي مجهودك

(04-02-22, 10:54 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم انت لست بحاجة الى ليست بوكس لتضع فيها السجلات وتختار منها
قم بعمل التالي :
اضف عمود الى الداتاغرايد العلوية وأسمه "Selec" والعنوان ايضا "Selec" واجعله من نوع CheckBox بحيث يمكنك اختيار السجلات التي تريد حفظها
ثم استبدل كود الحفظ السابق بالتالي :
كود :
private void Btn_SaveToAccess_Click(object sender, EventArgs e)
   {
       OleDbCommand Cmd = new OleDbCommand();
       bool aa;
       for (int i = 0; i < DGV_TableExcel.Rows.Count; i++)
       {
           aa=Convert.ToBoolean(DGV_TableExcel.Rows[i].Cells["Selec"].Value);
           if (aa == true)
           {

           Cmd = new OleDbCommand("insert into Table1(Cv_Name,Cv_Salary) Values(@Cv_Name,@Cv_Salary)", Con);
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Name", OleDbType.VarWChar)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Name"].Value.ToString();
           Cmd.Parameters.Add(new OleDbParameter("@Cv_Salary", OleDbType.Decimal)).Value = DGV_TableExcel.Rows[i].Cells["Kh_Salary"].Value;
           if (Con.State == ConnectionState.Closed) Con.Open();
           Cmd.ExecuteNonQuery();
           Con.Close();
           }
       }

       MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information);
       SelectAll_Table1();
   }
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#9
شيئ مثل هذا الفيديو :


برنامج المحاسب العقاري


الرد }}}
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل الكود هذا صحيح خاص بالربط مع قاعدة بيانات SQL server تركي احمد 0 199 15-02-24, 10:04 AM
آخر رد: تركي احمد
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 4,233 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  [سؤال] السلام عليكم بدون زحمة عندي نظام ارشفة مشتغلة بلغة سي شارب وقاعدة بيانات سكوال سيرفر مرتضى 1 671 13-05-23, 10:36 PM
آخر رد: عبدالله الدوسري
  [C#.NET] لماذا لا يتم عرض بيانات ahmed_king2023 0 545 22-04-23, 09:09 PM
آخر رد: ahmed_king2023
  مثال لربط البرنامج بجهاز قارء الباركود anes 5 1,281 10-04-23, 03:14 PM
آخر رد: assuhimi
  [C#.NET] عرض بيانات قريد فيو في تكست بوكس ahmed_king2023 1 597 27-03-23, 04:54 PM
آخر رد: sanyor77
  كيفية تثبيت الخطوط عند المستخدم بمجرد تنزيل البرنامج osama623 1 718 18-11-22, 02:07 PM
آخر رد: alfaiz678
  ممكن مساعدة في حل مشكل البرنامج crazykinko 0 725 03-11-22, 05:03 PM
آخر رد: crazykinko
  انشاء قاعدة بيانات عن طرق الكود amonem 3 1,349 07-10-22, 12:51 PM
آخر رد: asemshahen5
  مشكله فى اغلاق البرنامج khataan88 1 853 28-05-22, 06:50 AM
آخر رد: khataan88

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


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