PDA

View Full Version : انتخاب یک سطر از datagrid نمایش در datagrid دیگر



vbsalam
دوشنبه 05 دی 1390, 22:59 عصر
سلام

من می خوام کاربر با انتخاب یک سطر از datagrid ، اطلاعات اون سطر به یه دیتاگرید دیگه اضافه بشه!!!

sayvan
سه شنبه 06 دی 1390, 00:05 صبح
سلام
اطلاعات جدولی که دیتا گرید مبدا داری رو در درون دیتا تیبل بریز
DataTable dt = new DataTable();
یه دیتا تیبل دیگه برای اضافه کردن سطر های انتخابی لازمه
DataTable dt2 = dt.Clone();
با یه حلقه Foreach اطلاعات سطر انتخابی رو در درون تیبل2 میذاریم
foreach (DataGridViewRow dgvRow in dataGridView1.SelectedRows)
{
dt2.ImportRow(dt.Rows[dgvRow.Index]);
}

بعد دیتا گرید 2 رو پر میکنیم
dataGridView2.DataSource = dt2;
امیدوارم مفید باشه

vbsalam
سه شنبه 06 دی 1390, 10:28 صبح
1-چطوری اطلاعات دیتا گرید و بریزم تو دیتا تیبل؟
نشد
ور رفتم
اگه میشه سمپل عملیی برام بزارید ببینم
خواهش میکنم!
ممنون
دستتون درد نکنه!

sayvan
سه شنبه 06 دی 1390, 15:13 عصر
دوست عزیز دیتا تیبل رو میتونی با دیتا آداپتر پر کنی دیگه
این یه مثال خودت با دیتابیس و جدولت ویرایشش کن :
SqlConnection sqlCon = new SqlConnection("Data Source=(Local);Initial Catalog=Northwind;Integrated Security=true");
SqlDataAdapter sqlDa = new SqlDataAdapter("select * from Customers", sqlCon);
//ریختن اطلاعات در دیتا تیبل
sqlDa.Fill(dt);
//انتخاب منبع داده دیتا گرید ویو
dataGridView1.DataSource = dt;

vbsalam
سه شنبه 06 دی 1390, 16:47 عصر
ببینید یه بار دیگه من سوالم و میگم
من دو تا دیتا گرید دارم که دو تاشون پر هستن!
میخوام رو دیتا گرید دومی رو یه سطرش که کلیک کرد اطلاعات اون سطر به دیتا گرید اولی اضافه بشه
یعنی بره سطر بعد دیتا گرید اولی اضافه بشه!
تورو خدا اگه میتونید سمپل عملی برام بفرستید
من خیلی با کدها ور رفتم
از هر راهی میشد رفتم!
خیلی ام عجله دارم
سه روزه وقتم سر همین مشکل رفته و پروژم پیش نرفته

sobaisobai
سه شنبه 06 دی 1390, 17:20 عصر
سلام
کد زیر رو تو رویداد MouseClick دیتاگریداول بنویس
foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
{
object[] rowData = new object[row.Cells.Count];
for (int i = 0; i < rowData.Length; ++i)
{
rowData[i] = row.Cells[i].Value;
}
this.dataGridView2.Rows.Add(rowData);
}
منبع (http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/b10ba6b8-677c-4629-b1ed-ec45086d33dd)

vbsalam
سه شنبه 06 دی 1390, 23:38 عصر
سلام
کد زیر رو تو رویداد MouseClick دیتاگریداول بنویس
foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
{
object[] rowData = new object[row.Cells.Count];
for (int i = 0; i < rowData.Length; ++i)
{
rowData[i] = row.Cells[i].Value;
}
this.dataGridView2.Rows.Add(rowData);
}
منبع (http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/b10ba6b8-677c-4629-b1ed-ec45086d33dd)

این کد جواب میده
اما اگه این گریدام هر کدوم تو یه فرم جدا باشن چی؟؟؟

sobaisobai
چهارشنبه 07 دی 1390, 00:25 صبح
این کد جواب میده
اما اگه این گریدام هر کدوم تو یه فرم جدا باشن چی؟؟؟
به این صورت میتونی عمل کنی
foreach (DataGridViewRow row in this.dataGridView2.SelectedRows)
{
object[] rowData = new object[row.Cells.Count];
for (int i = 0; i < rowData.Length; ++i)
{
rowData[i] = row.Cells[i].Value;
}
(Application.OpenForms["Form2"].Controls["dataGridView1"] as DataGridView).Rows.Add(rowData);
}