10-07-19, 09:21 PM
(10-07-19, 08:26 PM)amonem كتب :(10-07-19, 07:23 PM)Eng.Ahmed Amen كتب : اتفضل , انا غيرت بس ال DataTable علشان اجربه عندي.
هتعمل تمرير لاي Combo ف ال Grid
ب الشكل ده
PHP كود :
(DataGridViewComboBoxCell)dataGridView1.Rows[0].Cells[0]
PHP كود :
DB.FillComBobx((DataGridViewComboBoxCell)dataGridView1.Rows[0].Cells[0], "select ID,Char_Name from TabTest", "ID", "Char_Name");
PHP كود :
// ------------------[تعبئة كمبو بوكس]-------------------
public static void FillComBobx(DataGridViewComboBoxCell Cmd, string Sql, string displayCol, string valueCol)
{
SqlDataAdapter Da = new SqlDataAdapter(Sql, Con);
DataSet Ds = new DataSet();
Da.Fill(Ds);
Cmd.DataSource = Ds.Tables[0];
Cmd.DisplayMember = displayCol;
Cmd.ValueMember = valueCol;
}
شكرا لاهتمامك استاذي الغالى
الكود دا مختصر لكن بيطلع خطأ لو ممكن ارفق مثال افضل
(10-07-19, 07:06 PM)asemshahen5 كتب : هذا الكود بعد التعديل :
PHP كود :
/// <summary>
/// تعبئة الغريد فيو و الكمبو بوكس اللي في الغريد فيو
/// </summary>
/// <param name="dgv">اسم الداتاغريد فيو على الفورم</param>
/// <param name="Sql">الاستعلام المستخدم</param>
/// <param name="displayCol">اسم العامود الموجود بالجدول بقاعدة البيانات</param>
/// <param name="ColInt">ترتيب العامود بالداتا غريد فيو</param>
public static void FillDGVComBobx(DataGridView dgv, string Sql, string displayCol,int ColInt)
{
SqlDataAdapter sda1 = new SqlDataAdapter(Sql, Con);
DataTable dt1 = new DataTable();
sda1.Fill(dt1);
ArrayList StringList = new ArrayList();
foreach (DataRow item in dt1.Rows)
{
StringList.Add(item[displayCol].ToString());
}
int n = 0;
int y = dt1.Columns.Count - 1;
foreach (DataRow item in dt1.Rows)
{
n=dgv.Rows.Add();
foreach (DataColumn itemCol in dt1.Columns)
{
DataGridViewComboBoxCell CellSample = new DataGridViewComboBoxCell();
CellSample.DataSource = StringList;
if (itemCol.Ordinal == ColInt)
{
dgv.Rows[n].Cells[itemCol.Ordinal] = CellSample;//Name,EmployeeID
}
else
{
dgv.Rows[n].Cells[itemCol.Ordinal].Value = item[itemCol.ColumnName].ToString();
}
}
dgv.Rows[n].Cells[0].Value = StringList[n].ToString();
}
}
و هذا كود استدعائه :
PHP كود :
private void Form1_Load(object sender, EventArgs e)
{
DB.FillDGVComBobx(dataGridView1, "select Office,Name,EmployeeID from Employee", "Office",0);
}
بالرغم ان الكود طويل لكن النتيجه 100%
شكرا ليك استاذي الغالى
غير فقط الVoid الي داخل ال Class
و ال Call Void
من الفورم , قفط لااكثر, والكود يعمل , اذا كان لا يعمل معك , شيك علي الاتصال بقاعده البيانات والاعمده المراد اظهارها
