12-07-19, 12:42 AM
(11-07-19, 01:24 PM)asemshahen5 كتب :شكرا لاهتمامك استاذي الغاالي(11-07-19, 01:21 PM)Mohsien كتب :PHP كود :
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);
}
private static DataTable loadData(string playerssql)
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand cmd;
//PLAYER TABLE
cmd = new SqlCommand(playerssql, con);
adapter.SelectCommand = cmd;
adapter.Fill(dt);
return dt;
}
//COMBO COLUMN
private static void addCombo(DataGridView Dgv, string ColName, int ColInt)
{
//ADD COLUMNS
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.HeaderText = ColName;//"Office"
combo.Name = "combo";
combo.DataPropertyName = ColName;//"Office"
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);
هذا الكود كامل باذن الله .
بس للاسف فيه خطا فى الكود
يريت تجربه وشوف النتيجه
