آموزش ADO.NET > کار با اشیای داده ای ADO.NET > کپی کردن محتویات یک شی DataSet

کپی کردن محتویات یک شی DataSet :

شما می توانید یک نسخه کپی از یک شی DataSet را تهیه نمایید . از این نسخه کپی منی توان برای انتقال آن به جایی دیگر و یا برای کار با داده های شی DataSet بدون تغییر دادن نسخه اصلی استفاده نمود .
انواع حالت های کپی کردن یک شی DataSet عبارتند از :

  1. کپی یک نسخه کاملا مشابه شی DataSet اصلی ، که شامل تمام اطلاعات فیلدها و رکوردها ، ساختار و اطلاعات فرعی جداول آن نیز می باشد .
  2. تهیه یک نسخه کپی از شی DataSet که شامل ساختار و شمای کلی آن به همراه اطلاعات رکوردهای تغییر یافته است .
  3. تهیه یک نسخه کپی از شی DataSet که فقط ساختار و ارتباطات بین جداول شی اولیه را داراست و اطلاعات هیچ رکوردی را کپی نمی کند ( در واقع یک نمونه خالی  که فقط دارای ساختار شی اولیه است ، کپی می شود ) .
    نکته : رکوردها می توانند بعدا توسط متد InportRow به یک شی DataSet منتقل شوند .

1 ) کپی یک نسخه کامل و مشابه از شی DataSet :

برای تهیه یک نسخه کامل از یک شی DataSet که شامل ساختار و اطلاعات شی اولیه DataSet باشد ، از دستور Copy مطابق مثال زیر استفاده می شود :

VB کد Dim copyDataSet As DataSet = customerDataSet.Copy( )
C# کد DataSet copyDataSet = customerDataSet.Copy( ) ;

2) کپی یک نسخه به روز شده از شی DataSet :

برای تهیه یک نسخه کپی از شی DataSet که شامل ساختار کلی جداول و رکوردهای اضافه شده ، به روز شده و یا حذف شده می باشد از متد GetChanges استفاده نمایید .
شما می توانید فقط اطلاعات رکوردهای خاصی ( مثل رکوردهای جدید یا به روز شده ) را با ارسال یک پارامتر توسط خاصیت DataRowState در هنگام فراخوانی تابع GetChanges کپی نمایید .
در مثال زیر هر دو روش تهیه یک نسخه به روز شده از یک شی DataSet توسط متد GetChanges نشان داده شده است :

VB کد ' کپی تمام تغییرات
   
Dim changeDataSet As DataSet = customerDataSet.GetChanges( )
' کپی فقط رکوردهای تغییر کرده
   
Dim addedDataSetAs DataSet = _
    customerDataSet.GetChanges( DataRowState.Added )
C# کد // کپی تمام تغییرات
   
DataSet changeDataSet = customerDataSet.GetChanges( );
// کپی فقط رکوردهای تغییر کرده
    DataSet addedDataSet= customerDataSet.GetChanges(DataRowState.Added);

3) تهیه یک نسخه خالی ، فقط شامل ساختار شی DataSet :

برای تهیه یک نسخه خالی که فقط شامل ساختار و شمای کلی شی DataSet است ، از متد ( ) Clone استفاده می شود .
نکته : همچنین شما می توانید رکوردهای موجود در شی DataSet را بوسیله متد ImportRow به یک شی DataTable منتقل کنید . متد ImportRow اطلاعات رکوردها ، وضعیت و ورژن اطلاعات آنها را به جدول تعیین شده منتقل می کند . مقادیر فیلدها فقط در مکان هایی که نام فیلد و نوع داده ای آنها یکسان باشد ، منتقل خواهند شد .

مثال عملی  :

در مثال زیر ، در خط اول دستور یک نسخه خالی که فقط شامل قالب و ساختار شی DataSet اولیه با نام customerDataSet می باشد را تهیه کرده ایم .  نام شی جدید و خالی DataSet شی  germanyCustomers  تعیین شده است .
سپس اطلاعات مشتریانی که مقدار فیلد CountryRegion  آنها برابر با Germany است ، از شی DataSet اولیه استخراج شده است .

در مرحله بعد یک جدول جدید در شی DataSet به نام customerTable ایجاد شده و اطلاعات مشتریان آلمانی که در مرحله قبل ، اطلاعات آنها را استخراج کرده بودیم ، را  دورن جدول جدید ، توسط متد ImportRow وارد شده است :

VB کد Dim germanyCustomers As DataSet = customerDataSet.Clone( )

Dim copyRows( ) As DataRow = customerDataSet.Tables("Customers").Select("CountryRegion = 'Germany'")

Dim customerTable As DataTable = germanyCustomers.Tables("Customers")
Dim copyRow As DataRoww

For Each copyRow In copyRows
   customerTable.ImportRow(copyRow)
Next
C# کد DataSet germanyCustomers = customerDataSet.Clone( );

DataRow[ ] copyRows = customerDataSet.Tables["Customers"].Select("CountryRegion = 'Germany'");

DataTable customerTable = germanyCustomers.Tables["Customers"];

foreach (DataRow copyRow in copyRows)
   customerTable.ImportRow(copyRow);



راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟