انتقال اطلاعات از یک datagrid به دیتاگریدی در فرم دیگر
سلا مهندسین و اساتید عزیز.
یه سوال داشتم و انتظار دارم پاسخ درست دریافت کنم.
میخوام از یک دیتاگرید که اطلاعاتش از دیتابیس گرفته میشه، با استفاده از چکباکس، سطرهایی که تیک دار میشن رو به دیتاگرید دیگه در فرم دیگری انتقال بدم.
یه چیزایی نوشتم.اما فقط یک سطر منتقل میشه.میخواستم راهنمایی کنین.سپاس فراوان
private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> selectedRows = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["check"].Value) == true
select row).ToList();
foreach (DataGridViewRow row in selectedRows)
{
{
Form1 frm= new Form1 ();
int i = 0;
DataGridViewRow r = new DataGridViewRow();
frm.dataGridView1.Rows.Add(r);
frm.dataGridView1.Rows[i].Cells["name"].Value = row.Cells["name"].Value.ToString();
frm.dataGridView1.Rows[i].Cells["family"].Value = row.Cells["family"].Value.ToString();
frm.dataGridView1.Rows[i].Cells["family"].Value = row.Cells["age"].Value.ToString();
i++;
this.Hide();
frm.ShowDialog();
}
}
}
نقل قول: انتقال اطلاعات از یک دیتاگرید به دیتاگرید دیگر در فرم دیگر
سلام خب مشخصه شما متغییر فرم را داخل حلقه تعریف کردی یعنی به ازای هر بار اجرا حلقه for متغییر شما مجدد ساخته میشود.متغییر r را با مقادیر مقداردهی نمایید بعد به DataGrid اضافه کنید.
private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> selectedRows = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["check"].Value) == true
select row).ToList();
var frm= new Form1 ();
var r = new DataGridViewRow();
foreach (DataGridViewRow row in selectedRows)
{
r = new DataGridViewRow();
r.Cells["name"].Value = row.Cells["name"].Value.ToString();
r.Cells["family"].Value = row.Cells["family"].Value.ToString();
r.Cells["age"].Value = row.Cells["age"].Value.ToString();
frm.dataGridView1.Rows.Add(r);
}
this.Hide();
frm.ShowDialog();
}
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگرید دیگر در فرم دیگر
ممنونم. چرا خطای Column named name cannot be found میده؟
با اینکه ستونها تعریف شده ست
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگرید دیگر در فرم دیگر
نام ستون ها رو در دیتاگرید منبع چک کنید .در کد شما دوتا نام ستون family ست شده است .من آخریو تبدیل به age کردم احتمالا خطا از اونجا ناشی شده است. موفق باشید
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگرید دیگر در فرم دیگر
نقل قول:
نوشته شده توسط
ژیار رحیمی
نام ستون ها رو در دیتاگرید منبع چک کنید .در کد شما دوتا نام ستون family ست شده است .من آخریو تبدیل به age کردم احتمالا خطا از اونجا ناشی شده است. موفق باشید
چک کردم ، همه چی درسته مهندس.با کد قبلی فقط یه ردیف رو ثبت میکرد.خطا نمیداد.
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگرید دیگر در فرم دیگر
ستون های DataGrid منبع با ستون های Datagrid مقصد یکی هست؟ اگر مشکل همچنان باقیست با کد قبلی خودتان انجام بدهید فقط متغییر Form را خارج از حقله for تعریف کن ببین مشکل حل میشه
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگرید دیگر در فرم دیگر
ستون های منبع و مقصد یکیه.درواقع از یه دیتاگرید استفاده کردم برای هر دو فرم.
کد رو به این صورت اصلاح کردم. منتها تعداد سطرهای انتخاب شده رو در فرم جدید انتقال مبده، اما فقط یک سطر دارای اطلاعات و محتویات هست و سطرهای انتخابیه دیگه، خالی از اطلاعات هست
private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> selectedRows = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["check"].Value) == true
select row).ToList();
Form1 frm = new ّForm1();
foreach (DataGridViewRow row in selectedRows)
{
int i = 0;
DataGridViewRow r = new DataGridViewRow();
frm.dataGridViewX1.Rows.Add(r);
frm.dataGridViewX1.Rows[i].Cells["name"].Value = row.Cells["name"].Value.ToString();
frm.dataGridViewX1.Rows[i].Cells["family"].Value = row.Cells["family"].Value.ToString();
frm.dataGridViewX1.Rows[i].Cells["father"].Value = row.Cells["father"].Value.ToString();
i++;
}
this.Hide();
frm.ShowDialog();
}
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگریدی در فرم دیگر
مشکل این بار به متغییر i برمیگردد، مشابه مشکل قبلی داخل حلقه تعریف شده است که من دیر متوجه آن شدم
List<DataGridViewRow> selectedRows = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
where Convert.ToBoolean(row.Cells["check"].Value) == true
select row).ToList();
Form1 frm = new ّForm1();
int i = 0;
foreach (DataGridViewRow row in selectedRows)
{
frm.dataGridViewX1.RowCount = selectedRows.Count;
frm.dataGridViewX1.Rows.Add(r);
frm.dataGridViewX1.Rows[i].Cells["name"].Value = row.Cells["name"].Value.ToString();
frm.dataGridViewX1.Rows[i].Cells["family"].Value = row.Cells["family"].Value.ToString();
frm.dataGridViewX1.Rows[i].Cells["father"].Value = row.Cells["father"].Value.ToString();
i++;
}
this.Hide();
frm.ShowDialog();
نقل قول: انتقال اطلاعات از یک datagrid به دیتاگریدی در فرم دیگر
بسیار سپاسگزارم از شما مهندس عزیز :لبخندساده: