بالرغم ان الكود طويل لكن النتيجه 100%
شكرا ليك استاذي الغالى
غير فقط الVoid الي داخل ال Class
و ال Call Void
من الفورم , قفط لااكثر, والكود يعمل , اذا كان لا يعمل معك , شيك علي الاتصال بقاعده البيانات والاعمده المراد اظهارها
بالرغم ان الكود طويل لكن النتيجه 100%
شكرا ليك استاذي الغالى
استاذي الفاضل
اكتشفت حاجه فى الكود
1- الكود بيعبى الكمبوبوكس ال به بيانات فقط لكن لما بحب اضيف بند جديد الكمبو بوكس مش بيكون به اي بيانات
2- استدعاء البيانات داخل الداتا فيو بتتم بوضع شرط استدعاء بيانات الموظف الحالى كيف اضع شرط به
(10-07-19, 07:23 PM)Eng.Ahmed Amen كتب : اتفضل , انا غيرت بس ال DataTable علشان اجربه عندي.
هتعمل تمرير لاي Combo ف ال Grid
ب الشكل ده
11-07-19, 01:08 PM (آخر تعديل لهذه المشاركة : 11-07-19, 01:17 PM {2} بواسطة asemshahen5.)
لقد انتبهت لهذا الخطا البارحة و قمت بتعديل الكود المهم هذا الكلاس بعد التعديل باذن الله سيعمل من دون مشاكل سواء سجد جديد او تعديل سجل :
PHP كود :
using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Windows.Forms;
namespace ComBobx { public class Class1 { //INITIALIZATIONS static SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Accounts;Integrated Security=True"); static DataTable dt = new DataTable(); /// <summary> /// تعبئة الغريد فيو و الكمبو بوكس اللي في الغريد فيو /// </summary> /// <param name="Dgv">اسم الداتاغريد فيو على الفورم</param> /// <param name="playerssql">الاستعلام المستخدم</param> /// <param name="ColName">اسم العامود الموجود بالجدول بقاعدة البيانات</param> /// <param name="ColInt">ترتيب العامود بالداتا غريد فيو</param> public static void dataGridViewLoad(DataGridView Dgv, string playerssql, string ColName, int ColInt) { Dgv.DataSource = loadData(playerssql); addCombo(Dgv, ColName, ColInt); }
ArrayList row = new ArrayList(); //FILL ARRAYLIST FROM DATATABLE foreach (DataRow dr in dt.Rows) { row.Add(dr[ColName].ToString());//"Office" } //ADD TO COMBO combo.Items.AddRange(row.ToArray()); //Remove Old Column Dgv.Columns.RemoveAt(ColInt); //ADD THE COMBO TO DATAGRIDVIEW Dgv.Columns.Insert(ColInt, combo); //Dgv.Columns.Add(combo); }
} }
هذا كود استدعائه :
PHP كود :
Class1.dataGridViewLoad(dataGridView1, "select Office,Name,EmployeeID from Employee", "Office",0);
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
using System.Data.SqlClient; using System.Windows.Forms; using System.Data;
namespace ComBobx { public static class DB { public static SqlConnection Con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Data_Company;Integrated Security=True");
// ------------[فتح الاتصال بقاعدة البيانات]------------ public static void openDB() { if (Con.State != ConnectionState.Open) Con.Open(); }
// ------------------[تعبئة كمبوبوكس]------------------- public static void FillComBobx(ComboBox Cmd, string Sql, string displayCol, string valueCol) { SqlDataAdapter Da = new SqlDataAdapter(Sql, Con); DataTable Dt = new DataTable(); Da.Fill(Dt); Cmd.DataSource = Dt; Cmd.DisplayMember = displayCol; Cmd.ValueMember = valueCol; Cmd.SelectedIndex = -1; }
// ------------[تعبئة داتاجريدفيوكمبوبوكس]------------- public static void FillDataGridViewComboBox(DataGridViewComboBoxColumn Cmd, string Sql, string displayCol, string valueCol) { SqlDataAdapter Da = new SqlDataAdapter(Sql, Con); DataTable Dt = new DataTable(); Da.Fill(Dt); Cmd.DataSource = Dt; Cmd.DisplayMember = displayCol; Cmd.ValueMember = valueCol; }
} }
PHP كود :
DB.FillDataGridViewComboBox((DataGridViewComboBoxColumn)dataGridView1.Columns[0], "select Name,ID from TB_School", "Name", "ID");
هذا الكود بيملا اول كمبو بوكس فى اول صف فقط
اذا اردت اختيار بند اخر لا اجد اي بيانات داخل الكمبو بوكس االثاني .
(11-07-19, 01:08 PM)asemshahen5 كتب : لقد انتبهت لهذا الخطا البارحة و قمت بتعديل الكود المهم هذا الكلاس بعد التعديل باذن الله سيعمل من دون مشاكل سواء سجد جديد او تعديل سجل :
PHP كود :
using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Windows.Forms;
namespace ComBobx { public class Class1 { //INITIALIZATIONS static SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Accounts;Integrated Security=True"); static DataTable dt = new DataTable(); /// <summary> /// تعبئة الغريد فيو و الكمبو بوكس اللي في الغريد فيو /// </summary> /// <param name="Dgv">اسم الداتاغريد فيو على الفورم</param> /// <param name="playerssql">الاستعلام المستخدم</param> /// <param name="ColName">اسم العامود الموجود بالجدول بقاعدة البيانات</param> /// <param name="ColInt">ترتيب العامود بالداتا غريد فيو</param> public static void dataGridViewLoad(DataGridView Dgv, string playerssql, string ColName, int ColInt) { Dgv.DataSource = loadData(playerssql); addCombo(Dgv, ColName, ColInt); }
ArrayList row = new ArrayList(); //FILL ARRAYLIST FROM DATATABLE foreach (DataRow dr in dt.Rows) { row.Add(dr[ColName].ToString());//"Office" } //ADD TO COMBO combo.Items.AddRange(row.ToArray()); //Remove Old Column Dgv.Columns.RemoveAt(ColInt); //ADD THE COMBO TO DATAGRIDVIEW Dgv.Columns.Insert(ColInt, combo); //Dgv.Columns.Add(combo); }
} }
هذا كود استدعائه :
PHP كود :
Class1.dataGridViewLoad(dataGridView1, "select Office,Name,EmployeeID from Employee", "Office",0);
هذا الكود كامل باذن الله .
شكرا لاهتمامك استاذي الغاالي
بس للاسف فيه خطا فى الكود
يريت تجربه وشوف النتيجه