PDA

View Full Version : انتقال برخی از سطرهای یک جدول به جدول دیگر



bashir_nashi
دوشنبه 20 اسفند 1386, 20:29 عصر
سلام
من برای انتقال بعضی از سطرهای یک جدول به جدول دیگر به یه مشکل برخوردم
برای این کار من از ابتدا تا انتهای جدول اول رو طی می کنم و وقتی به یکی از سطرهای مورد نظر جهت انتقال رسیدم اطلاعات اون رو فیلد به فیلد به جدول دوم انتقال میدم
با این کد :


Dim row As Data.DataRow = Me.DataDataSet.TFac.NewTFacRow
Dim i As Integer
For i = 0 To DataDataSet.TSaleKala.Rows.Count - 1
If DataDataSet.TSaleKala.Rows(i).Item("fac") = FacNoToFix Then

row.Item("name") = DataDataSet.TSaleKala.Rows(i).Item("name")
row.Item("amount") = DataDataSet.TSaleKala.Rows(i).Item("amount")
row.Item("price") = DataDataSet.TSaleKala.Rows(i).Item("price")

Me.DataDataSet.TFac.AddTFacRow(row)
End If
Next


ولی بعد از کپی کردن اولین سطر در جدول دوم وقتی می خواد سطر دوم رو کپی کنه با این ارور خارج میشه :
This row already belongs to this table.
اگه من بعد از دستور اضافه کردن سطر به جدول دوم دستور آپدیت رو بزارم این مشکل پیش نمیاد ولی فکر نکنم این کار جالبی باشه که بعد از اضافه کردن هر سطر یه بار آپدیت کنم!

منتظر راهنمایی دوستان هستم.

nasseritemp
دوشنبه 20 اسفند 1386, 21:47 عصر
شما بهتره که Data Table دوم رو به Data Source وصل نکنید و ستونها رو خودتون داخل برنامه ایجاد کنید مثلا


Dim dcEmployeeid As DataColumn
dcEmployeeid = dt1.Columns.Add()

ghafoori
سه شنبه 21 اسفند 1386, 09:12 صبح
دوست عزیز کد خود را به این صورت تغییر بدید هر بار row را new کنید




Dim i As Integer
Dim row As Data.DataRow
For i = 0 To DataDataSet.TSaleKala.Rows.Count - 1
If DataDataSet.TSaleKala.Rows(i).Item("fac") = FacNoToFix Then
row = Me.DataDataSet.TFac.NewTFacRow
row.Item("name") = DataDataSet.TSaleKala.Rows(i).Item("name")
row.Item("amount") = DataDataSet.TSaleKala.Rows(i).Item("amount")
row.Item("price") = DataDataSet.TSaleKala.Rows(i).Item("price")

Me.DataDataSet.TFac.AddTFacRow(row)
End If
Next

Dariuosh
سه شنبه 21 اسفند 1386, 10:03 صبح
ببین اینطوری مشکلت حل میشه؟

For i AsInteger = 0 To DataDataSet.TSaleKala.Rows.Count - 1
If DataDataSet.TSaleKala.Rows(i).Item("fac") = FacNoToFix Then
TFac.ImportRow(DataDataSet.TSaleKala.Rows(i))
EndIf
Next

البته این درصورتی جواب میده که 2تا جدولت یه مدل باشه ها