PDA

View Full Version : قطع ارتباط یک datatable وقتی که اونو در یک متغیر می زاریم



rezaei manesh
شنبه 28 مهر 1386, 17:56 عصر
سلام
من دیتا تیبل از یک دیتا ست رو به گراید وصل کردم حالا در جایی می خوایم که این دیتا تیبل رو درون یک دیتا ویو بریزم و روی اون یکسری تغییر بدم اما نمی خوام این تغییرات در گراید دیده بشه (یک جور تغییر موقته) اما هر کاری می کنم نمی شه؟!!
کد من :


Dim dv As New DataView
dv.Table =me.DsetShiftsMould.ShiftsMould
dv.Table.Rows.Clear()
...

یکی هم اینکه می خوام ساختار جدول این دیتا تیبل رو در یک دیتا ویو دیگر داشته باشم اونم نمی دونم چطوریه؟

ghafoori
یک شنبه 29 مهر 1386, 09:38 صبح
دوست عزیز فکر کنم در هر دو مورد با کپی از حداول کارتان را بیوفتد

Dim dv As New DataView
dv.Table = Me.DataSet1.Tables(0).Clone
dv.Table.Rows.Clear()

البته برای روش دوم هم این را هم به ذهن من خورد

Dim s As IO.Stream
Dim dv2 As New DataView
Dim dt As New DataTable
Me.DataSet1.Tables(0).WriteXmlSchema(s)
dt.ReadXmlSchema(s)
dv2.Table = dt

rezaei manesh
یک شنبه 29 مهر 1386, 10:49 صبح
سلام دوست عزیز
دستت درد نکنه روش اولت جواب داد
اما فکر کنم روش استانداردی نیست چون داده ها زیاده یک بار الکی باید اون ها رو بریزی بعد چک کنی ...
روش دوم هم که به نظر خوب می یاد اما جواب نمی ده ساختار رو در جدول دوم کپی نمی کنه

ghafoori
یک شنبه 29 مهر 1386, 16:30 عصر
کدها را بصورت زیر تغییر بدید مشکل حل می شود

Dim s As New IO.MemoryStream
Dim dv2 As New DataView
Dim dt As New DataTable(Me.DataSet11.Tables(0).TableName)
Me.DataSet11.Tables(0).WriteXmlSchema(s)
s.Seek(0, IO.SeekOrigin.Begin)
dt.ReadXmlSchema(s)
dv2.Table = dt