آموزش ADO.NET > کار با اشیای داده ای ADO.NET > کپی کردن محتویات یک شی DataSet
کپی کردن محتویات یک شی DataSet :
شما می توانید یک نسخه کپی از یک شی DataSet
را تهیه نمایید . از این نسخه کپی منی توان برای انتقال آن به جایی دیگر و یا برای
کار با داده های شی DataSet بدون تغییر دادن نسخه اصلی استفاده نمود .
انواع حالت های کپی کردن یک شی DataSet عبارتند از :
- کپی یک نسخه کاملا مشابه شی DataSet اصلی ، که شامل تمام اطلاعات فیلدها و رکوردها
، ساختار و اطلاعات فرعی جداول آن نیز می باشد .
- تهیه یک نسخه کپی از شی DataSet که شامل ساختار و شمای کلی آن به همراه اطلاعات رکوردهای
تغییر یافته است .
- تهیه یک نسخه کپی از شی 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
حمایت نمایید :