PDA

View Full Version : سوال: ارسال مقادیر بین datagridview های دو فرم



j.muhama
پنج شنبه 26 اسفند 1395, 08:54 صبح
با عرض سلام و وقت بخیر
در مورد ارسال مقادیر دیتاگریدویوها بین دو تا فرم مختلف برام یه مشکلی به وجود اومده .برنامه در پلتفرم Windows Form است و به زبان C# و دیتابیس SQL Server .
فرض کنید که یک دیتابیس SQL به نام TestDB ساختیم و در داخل این دیتابیس TestDB هم یک جدولی به نام Persons ایجاد کردیم و داخل این جدول نیز فیلدهای نام , نام خانوادگی و شماره تلفن رو ایجاد کردیم در ضمن داخل این جدول هم چندین رکورد مثلا" 10 رکورد رو اضافه کردیم.
حالا فرض کنید که در برنامه خودمون , دو تا فرم داریم به نام های فرم یک و فرم دو.
در فرم یک, یک دکمه گذاشتیم به نام ارسال اطلاعات و یک دیتاگریدویو هم گذاشتیم به نام datagrideview1 که در داخل این دیتاگریدویو هم مقادیر فیلدهای نام , نام خانوادگی و شماره تلفن بایند میشه. یعنی رکوردهای موجود در جدول دیتابیس خودمون رو , در این دیتاگریدویو نمایش دادیم .
در فرم دو نیز فقط یک دیتاگریدویو گذاشتیم به نام datagrideview2.
حالا میخوام وقتی که چندین سطر دلخواه از دیتاگریدویو فرم یک رو انتخاب کردم و روی دکمه ارسال اطلاعات کلیک کردم , مقادیر سطرهای انتخابی ام, بروند به دیتاگریدویو مربوط به فرم دو. دوستان لطفا" کمک کنید.
خیلی خیلی ممنونم از لطف و محبت شما. خیلی ممنونم.

CsharpNevisi
پنج شنبه 26 اسفند 1395, 23:31 عصر
نمونه ضمیمه شد .... !!!

یونس ابراهیمی
شنبه 28 اسفند 1395, 11:30 صبح
لینک آموزش (http://www.w3-farsi.com/?p=21270)

با فرض اینکه در فرم اول یک دیتاگریدویو و یک دکمه و در فرم دوم یک دیتاگریدویو داشته باشید و بخوایهد با کلیک بر روی دکمه سطرهای انتخاب شده دیتاگریدویو فرم اول به دیتاگریدویو فرم دوم منتقل شوند باید در رویداد کلیک دکمه در فرم اول کدهای زیر :



private void button1_Click(object sender, EventArgs e)
{
if (this.dataGridView1.Rows.Count > 0)
{
List<DataGridViewRow> selectedRows = new List<DataGridViewRow>();

for (int i = this.dataGridView1.SelectedRows.Count - 1; i >= 0; i--)
{
selectedRows.Add(this.dataGridView1.SelectedRows[i]);
}

if (selectedRows.Count > 0)
{
Form2 form2 = new Form2(selectedRows);
form2.ShowDialog();
}

}
}
و در فرم دوم هم کدهای زیر را بنویسید :



using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace TransferValueDGV
{
public partial class Form2 : Form
{

private List<DataGridViewRow> _selectedRows;
public Form2(List<DataGridViewRow> selectedRows)
{
InitializeComponent();

this._selectedRows = selectedRows;
}

private void Form2_Load(object sender, EventArgs e)
{
if (this._selectedRows != null &&
this._selectedRows.Count > 0)
{
for (int i = 0; i < this._selectedRows.Count; i++)
{
this.dataGridView1.Rows.Add(this._selectedRows[i].Cells[0].Value.ToString(),
this._selectedRows[i].Cells[1].Value.ToString());
}
}
}
}
}
برنامه را اجرا و با انتخاب چند سر و زدن دکمه نتیجه را مشاهده کنید :

http://www.w3-farsi.com/wp-content/uploads/2017/03/send-datagridview-rows-to-another-in-csharp.jpg




لینک آموزش (http://www.w3-farsi.com/?p=21270)