تقييم الموضوع :
  • 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  بدون الاي دي في جدول السيكوال
افضل من الليست بوكس
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







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

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


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







الرد }}
#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();
   }
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة:
#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
شيئ مثل هذا الفيديو :


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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  انشاء قاعدة بيانات عن طرق الكود amonem 2 389 01-06-22, 02:37 AM
آخر رد: amonem
  مشكله فى اغلاق البرنامج khataan88 1 362 28-05-22, 06:50 AM
آخر رد: khataan88
  عدد-بيانات-معينه-داخل-تقرير amonem 3 708 03-04-22, 09:42 PM
آخر رد: asemshahen5
  [سؤال] تحديث قاعدة بيانات العملاء kasber 3 917 17-02-22, 09:48 PM
آخر رد: محمود بكرى
  كيف اقوم بربط قاعدة بيانات server sql// SQLite محمدعبدالسلام 3 785 25-01-22, 10:54 PM
آخر رد: ابراهيم ايبو
  [C#.NET] كيف اجعل قاعدة البينات في البرنامج يعمل عليها اكثر من مستخدم عبدالرحمن محمدين السيد 1 540 10-01-22, 08:58 PM
آخر رد: سعود
  [C#.NET] اتصال بقاعدة بيانات ماي اس كيو ال علي الشبكة محمد اسماعيل 0 620 22-12-21, 08:47 PM
آخر رد: محمد اسماعيل
  السلام عليكم مشكله عند تشغل البرنامج بعد تثبيته من الحزمة Ikramynasr 1 667 01-12-21, 08:41 PM
آخر رد: asemshahen5
  [C#.NET] إرسال إيميل من البرنامج sniperjawadino 1 810 07-10-21, 12:29 AM
آخر رد: sniperjawadino
  [C#.NET] نقل بيانات من فورم لاخر محمد اسماعيل 4 1,245 10-09-21, 08:47 PM
آخر رد: asemshahen5

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


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