آموزش ADO.NET > کار با اشیای داده ای ADO.NET > حرکت بین رکوردهای جدول های مرتبط
( DataRelations )
حرکت بین رکوردهای جدول های مرتبط ( DataRelations ) :
یکی از مهم ترین و اصلی ترین کاربردهای ایجاد شی DataRelation برای پیوند دو یا چند
جدول در یک شی DataSet ، امکان حرکت بین جدول ها و دریافت اطلاعات مرتبط بهم می باشد
.
برای مثال این شی شما را قادر می سازد تا اطلاعات تمام رکوردهای مرتبط ( شی DataRow
) در یک جدول را با دادن آدرس رکوردی در جدول دوم دریافت نمایید . یعنی چه ؟
برای مثال فرض کنید که شما یک جدول به نام Customers دارید که اطلاعات مشتری ها در
آن وجود داشته و جدول دیگری نیز دارید که سفارشات هر مشتری را شامل می شود ( جدول Orders)
. در هنگام پیوند اتصال دو جدول بهم بوسیله فیلد (ستون) مشترک ، شما می توانید مثلا
لیست تمامی سفارشات یک مشتری خاص در جدول اول را ، از جدول دوم استخراج نمایید .
این کار و مفهموم آن در مثال عملی آموزش داده شده است .
آموزش با مثال عملی :
مثال عملی: در مثال زیر بوسیله یک شی DataRelation بین دو جدول Customers
و Orders یک ارتباط شکل گرفته است و سپس بوسیله متد GetChildRows ، تمامی سفارشات هر
مشتری در خروجی چاپ می شود :
نکات کد مثال :
- فیلد CustomerID یا شناسه مشتری ، بین دو جدول مشترک بوده و از آن برای اتصال و پیوند
دو جدول استفاده شده است . در جدول اول کلید اصلی و در جدول دوم کلید فرعی می باشد
.
- دو شی DataRow یا رکورد در ADO.NET را برای دریافت و نمایش اطلاعات خروجی به نام های
custRow و orderRow ایجاد کرده ایم .
- سپس به وسیله دو دستور حلقه در بین جدول ها حرکت کرده و اطلاعات مورد نظر را در خروجی
نمایش داده ایم .
|
VB کد
|
Dim customerOrdersRelation As DataRelation = _
customerOrders.Relations.Add("CustOrders", _
customerOrders.Tables("Customers").Columns("CustomerID"), _
customerOrders.Tables("Orders").Columns("CustomerID"))
Dim custRow, orderRow As DataRow
For Each custRow In customerOrders.Tables("Customers").Rows
Console.WriteLine("Customer ID:" & custRow("CustomerID").ToString(
))
For Each orderRow In custRow.GetChildRows(customerOrdersRelation)
Console.WriteLine(orderRow("OrderID").ToString(
))
Next
Next
|
|
C# کد
|
DataRelation customerOrdersRelation =
customerOrders.Relations.Add("CustOrders",
customerOrders.Tables["Customers"].Columns["CustomerID"],
customerOrders.Tables["Orders"].Columns["CustomerID"]);
foreach ( DataRow custRow in customerOrders.Tables["Customers"].Rows
)
{
Console.WriteLine(custRow["CustomerID"].ToString(
));
foreach
(DataRow orderRow in custRow.GetChildRows(customerOrdersRelation))
{
Console.WriteLine(orderRow["OrderID"].ToString( ));
}
}
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :