
نوشته شده توسط
Eqbali
سلام اعضای گروه
ببخشید من یک DataGridView دارم که اطلاعات دو جدول را با استفاده از دستور UNION ALL توی آن نمایش می دهم ولی می خواهم یک ستون برای شماره ردیف در آن ایجاد کنم که به ترتیب از عدد 1 شروع بشه تا آخر.
اگر راهنمای کنید که چطور این کار را انجام دهم ممنوم میشم!
private void Form1_Load(object sender, EventArgs e){
// ایجاد دیتاست و اضافه کردن جدول ها به آن
DataSet dataSet = new DataSet();
DataTable dataTable1 = new DataTable("Table1");
DataTable dataTable2 = new DataTable("Table2");
// افزودن ستون ها به جدول ها
dataTable1.Columns.Add("ID");
dataTable1.Columns.Add("Name");
dataTable2.Columns.Add("ID");
dataTable2.Columns.Add("Name");
// افزودن داده ها به جدول ها
dataTable1.Rows.Add(1, "John");
dataTable1.Rows.Add(2, "Alice");
dataTable2.Rows.Add(3, "Bob");
dataTable2.Rows.Add(4, "Emily");
// اضافه کردن جدول ها به دیتاست
dataSet.Tables.Add(dataTable1);
dataSet.Tables.Add(dataTable2);
// ایجاد دستور SQL برای ادغام دو جدول با استفاده از UNION ALL
string sql = "SELECT *, ROW_NUMBER() OVER(ORDER BY ID) AS RowNumber FROM (SELECT ID, Name FROM Table1 UNION ALL SELECT ID, Name FROM Table2) AS UnionTable";
// ایجاد یک adapter برای اجرای دستور SQL و پر کردن داده ها در دیتاگرید
SqlDataAdapter adapter = new SqlDataAdapter(sql, "connectionString");
DataTable resultTable = new DataTable();
adapter.Fill(resultTable);
// ایجاد ستون جدید برای شماره ردیف
DataGridViewColumn column = new DataGridViewTextBoxColumn();
column.HeaderText = "شماره ردیف";
column.Width = 100;
dataGridView1.Columns.Insert(0, column);
// نمایش داده ها در دیتاگرید و تنظیم شماره ردیف
dataGridView1.DataSource = resultTable;
}
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
// نمایش شماره ردیف در ستون جدید
dataGridView1.Rows[e.RowIndex].Cells[0].Value = (e.RowIndex + 1).ToString();
}