PDA

View Full Version : انتقال DataGridViewRow



Xcalivorse
یک شنبه 11 فروردین 1387, 16:25 عصر
با سلام.
من می خواهم یک ردیف از یک DataGrid رو به یک dataGrid دیگه اضافه کنم. اما Error میده.
ارورش اینه :

This row already belongs to another table


می تونم از طریق کپی کردن مقادیر یک DataGridViewRow در یک DataGridViewRow دیگه این کارو انجام بدم. ولی چون با این مشکل جاهای دیگه هم مواجهم می خوام بدونم چه کار باید بکنم.

در حقیقت چه کدی باید به جای کد زیر بنویسم تا درست کار کنه و ارور بالا رو نده ؟




;()DataGridViewRow NewRow = new DataGridViewRow
;[NewRow = DataGridView1.Rows[0
;(DataGridView2.Rows.Add(NewRow


با تشکر

hdv212
یک شنبه 11 فروردین 1387, 19:25 عصر
ابتدا ساختار و داده های آبجکت DataTable ات رو در یک آبجکت DataTable جدید کپی میکنی :

DataTable dt2 = this.dt.Copy();
و بعد اونو به DataGridView دومی، Bind میکنی :

this.dataGridView2.DataSource = dt2;

اینم یه مثال (فقط بایستی دیتابیس Northwind رو داشته باشی)

Xcalivorse
دوشنبه 12 فروردین 1387, 00:32 صبح
با تشکر ولی من می خوام بدونم چطوری باید یک DataGridViewRow را مثل یک DataGridViewRow موجود ایجاد کنم ولی DataGridViewRow دوم من مستقل از اولی باشه و ارور This row already belongs to another table رو نده.

من از این کد استفاده می کنم ولی ارور بالا رو میده.
DataGridViewRow NewRow = new DataGridViewRow
;[NewRow = DataGridView1.Rows[0
;(DataGridView2.Rows.Add(NewRow

hdv212
دوشنبه 12 فروردین 1387, 01:02 صبح
هدف شما از این کار چیه ؟
مگه نمیخوای اطلاعات داخل یک DataGridView رو به یک DataGridView دیگه کپی کنی ؟
شما برای انتقال داده ها از DataGridView نمیتونی از DataGridViewRow استفاده کنی(درستش هم همینه که شما به جای انتقال داده های نمایش داده شده در DataGridView، اطلاعات اصلی در دیتاسورست رو انتقال بدی)

Xcalivorse
دوشنبه 12 فروردین 1387, 01:18 صبح
من می خوام ردیف های انتخاب شده از یک DataGridView رو به یک DataGridView دیگه انتقال بدم.
اما در اصل می خوام بدونم آیا راهی هست که بشه یک DataGridViewRow را ایجاد شده با حفظ استقلال به یک DataGridViewRow موجود نسبت داد ؟
چون وقتی که من از کد
DataGridViewRow NewRow = new DataGridViewRow
;[NewRow = DataGridView1.Rows[0
;(DataGridView2.Rows.Add(NewRow

استفاده می کنم در حقیقت NewRow ارجاعی به[DataGridView1.Rows[0 است و به همین علت است که وقتی می خوام NewRow رو در یک DataGridView دیگه قرار بدم ارور ایجاد میشه.
من در حقیقت می خوام بدونم دستور ;[NewRow = DataGridView1.Rows[0 رو چه طور باید نوشت که NewRow یک ارجاع در نظر گرفته نشه ولی تمام مقادیر و خاصیت هاش مثل
;[DataGridView1.Rows[0 بشه ؟

با تشکر HDV212 جان

hdv212
سه شنبه 13 فروردین 1387, 00:53 صبح
من به پروژه ی قبلی یه button اضافه کردم که اطلاعات رو از دیتاگریدت به صورت value به value میگیره، تا بتونی روش کنترل داشته باشی.

Xcalivorse
چهارشنبه 14 فروردین 1387, 15:17 عصر
اگر میشه دوستان لطف کنن و بگن چه جوری میشه یک DataGridViewRow جدید را با حفظ استقلال به یک DataGridViewRow موجود نسبت داد تا بشه راحت
DataGridViewRow جدید رو در یک DataGridView مشابه Add کرد ؟