سلام
در این کد
جستجوی در DataTable و انتخاب رکوردهای در DataGridView و انتقال اون به DataGridView دیگر .
از دیتابیس SQL و Northwind استفاده شده است .
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
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;
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt1 = dt.DefaultView.ToTable();
DataTable dt2 = dt.Clone();
foreach (DataGridViewRow dgvRow in dataGridView1.SelectedRows)
{
dt2.ImportRow(dt1.Rows[dgvRow.Index]);
}
dataGridView2.DataSource = dt2;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
dt.DefaultView.RowFilter = "CustomerID like '" + textBox1.Text.Trim() + "%'";
}
توضیحی درباره کد انتقال رکوردها :
1- DataTable dt1 = dt.DefaultView.ToTable();
2- DataTable dt2 = dt.Clone();
3- foreach (DataGridViewRow dgvRow in dataGridView1.SelectedRows)
{
4- dt2.ImportRow(dt1.Rows[dgvRow.Index]);
}
dataGridView2.DataSource = dt2;
1- در این خط دقیقا همان جدولی که در دیتاگرید دیده میشود و بر روی آن سورت و Filter به هر شکلی صورت گرفته Copy شده داخل dt1 قرار میگیرد .
2- در این خط تنها ساختار dt را داخل dt2 قرار میدهیم .(مثلا همان ستونهای که درdt هست در dt2 هم ایجاد میشود نه رکوردها)
3-فورایچ برای پیمایش رکوردهای انتخاب شده در دیتاگرید .
4- قرار دادن کوپی از رکوردهای انتخاب شده و موجود از dt1 در dt2
نکته : index رکوردهای انتخاب شده دقیقا برابر است با رکوردهای موحود در dt1 به علتی که در خط 1 گفته شد .





 
			
			
 
					
					
					
						 پاسخ با نقل قول
  پاسخ با نقل قول 
			