PDA

View Full Version : تفاوت dataset و datatable



A_1397
سه شنبه 20 دی 1390, 11:21 صبح
میشه لطفا در مورد تفاوت dataset و datatable بگین. من قبلا با vb6 کار میکیردم و از recordset استفاده می کردم حالا در مرود دات نت که سرچ می کنم بعضی جاها از dataset برای ارتباط با جدول استفاده کردن بعضی جاها از datatable! یکی بگه چه فرقی می کنن؟ و من باید کی از کدوم استفاده کنم؟

sh2007
سه شنبه 20 دی 1390, 15:18 عصر
دیتا ست یک کپی از پایگاه داده توی حافظه می باشد که می توان همه کار رو توی اون انجام داد و اگه خواستی اطلاعات تغییر شده رو به بانک بفرستی
دیتا تیبل جدولی از اطلاعات توی حافظه است جزئی از دیتاست

ali190
سه شنبه 20 دی 1390, 20:44 عصر
دیتا تیبل جدولی از اطلاعات توی حافظه است جزئی از دیتاست
فکر نکنم Datatable جزئی از Dataset باشه ، چون میشه در دیتاتیبل به صورت مستقل از Dataset اطلاعات ریخت
درست نمیگم
من سئوال دشاتم که فرق بین Datatable و Dataview چیه؟
ممنونم
یاعلی

sh2007
سه شنبه 20 دی 1390, 21:20 عصر
اینجا رو لطفا ببینید (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx)

Hybrid
سه شنبه 20 دی 1390, 21:53 عصر
فکر نکنم Datatable جزئی از Dataset باشه ، چون میشه در دیتاتیبل به صورت مستقل از Dataset اطلاعات ریخت
درست نمیگم
من سئوال دشاتم که فرق بین Datatable و Dataview چیه؟
ممنونم
یاعلی

نه خود Dateset از دو بخش اصلی درست شده به نام های DataTableCollection و DataRelationCollection

DataTableCollection : برای هر جدول اصلی موجود در بانک یه نمونه از این شی در Dataset درست میشه..

dataRelationCollection : برای ارتباط بین هر دو جدول یه نمونه از این شی تو دیتاست درست میشه..

موفق باشید./

Hybrid
سه شنبه 20 دی 1390, 21:59 عصر
Dataview : این کنترل نحوه نمایش و ویرایش و حذف اشیائ متصل به بانک رو مدیریت میکنه .

DataTable : بخشی از اطلاعات موجود در بانک رو در خودش نگهداری میکنه ( توی حافظه ی اصلی).

برای استفاده از DataView باید اونو از طریق ToolBox و سپس Choose items به VS اضافه کنیم و سپس تو تنظیماتش اگه دقت کنین فقط میتونین یه Table بهش نسبت بدین اون موقع خود این DataView میشه یه Dataset یعنی میتونین کارهایی رو که با دیتاست انجام بدین با این DataView نیز اینجام بدین..

موفق باشید./

ali190
چهارشنبه 21 دی 1390, 20:16 عصر
ممنون از راهنماییتون
ولی میشه یه مقدار با جزئیات بیشتر توضیح بدید یا کارآیی این دو بزرگوار (Datatable, Dataview ) رو در یک مثال نشون بدید
ممنونم
یاعلی

Hybrid
چهارشنبه 21 دی 1390, 21:32 عصر
ممنون از راهنماییتون
ولی میشه یه مقدار با جزئیات بیشتر توضیح بدید یا کارآیی این دو بزرگوار (Datatable, Dataview ) رو در یک مثال نشون بدید
ممنونم
یاعلی

سلام دوست عزیز واقعا نمیتونم الان یه مثال با جزئیات کافی براتون بزنم چون درگیر خیلی از چیزهام(امتحانات ، پروژه و...) ولی این مثال ها رو از یه سایت خارجی براتون گرفتم مطمئنن میتونه برای شما مفید واقع بشه( به بزرگی خودتون ببخشید)...

مثال برای Data Table :


Module Module1

Sub Main()
' Get a DataTable instance from helper function.
Dim table As DataTable = GetTable()
End Sub

''' <summary>
''' Helper function that creates new DataTable.
''' </summary>
Function GetTable() As DataTable
' Create new DataTable instance.
Dim table As New DataTable
' Create four typed columns in the DataTable.
table.Columns.Add("Dosage", GetType(Integer))
table.Columns.Add("Drug", GetType(String))
table.Columns.Add("Patient", GetType(String))
table.Columns.Add("Date", GetType(DateTime))
' Add five rows with those columns filled in the DataTable.
table.Rows.Add(25, "Indocin", "David", DateTime.Now)
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now)
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now)
Return table
End Function

End Module

(( فقط یه چیزی هست اینه که این یه دیتا تیبل ساخته و اونو به صورت دستی مقدار دهی کرده یعنی از بانک اطلاعاتش رو نگرفته ولی 100 شبیه به همن!!)

برای Data view متاسفانه چیزی رو که واقعا Data view رو درک کنین گیر نیاوردم در اسرع وقت یه مثال کامل به همراه جزئیاتش براتون مینویسم و تقدیم میکنم...فقط فعلا به توضیحاتی که در پست های قبلی دادم اکتفا کنین ....

موفق باشید./

shadi khanum
شنبه 24 دی 1390, 13:17 عصر
ببين دوست عزيز، ديتاست مدلي از ديتابيس شماست در .Net.يعني درست مثل ديتابيستون شامل تعدادي جدول و ارتباط بين اون جداول و فيلداي جدول و constraintها و ...
همونجوري که ديتابيس مجموعه اي از جداول و ارتباط اونهاست، ديتاست هم مجموعهاي از جداول که بشون ميگن ديتاتيبل که با هم Relation دارن.. پس ديتاتيبل ها دقيقا همون جداول توي ديتابيستونن.
ديتاست خودش چيز خاصي نيست و اطلاعات شما توي ديتاتيبل هاي اونه مثل ديتابيس که اطلاعات و رکوردها تو جداول ذخيره ميشن..

shadi khanum
شنبه 24 دی 1390, 13:32 عصر
حالا فرق datatable و dataview.. اینجا هم باز دقیقا مثل رابطه table و view توی دیتابیس.. یعنی dataview یه shot از دیتاتیبل.. مثلا شما تو دیتاتیبلت اطلاعات افراد رو نگهداری میکنی و مثلا فیلدی داری که مشخص میکنه این فرد آقا یا خانوم.. حالا میخوای توی یه گرید یا کمبو فقط خانوم ها رو نشون بدی .اگه بخوای دیتاگرید رو به دیتاتیبلت بایند کنی که همه افراد رو نشون میده پس باید یه ویوو یا در اصطلاح یه دیتاویوو از روی اون دیتاتیبلت تعریف کنی و مثلا اگه تو فیلد جنسیت خانوم یا آقا بودن رو نگه داشتی، rowfilter اون رو بذاری "جنسیت = خانوم" و حالا این دیتا ویوو رو به گرید بایند کنی . حالا اگه جایی از برنامه یه خانوم به دیتاتیبلت اضافه کنی چون اون فیلد جنسیت رو میذاری خانوم خودش اتوماتیک به این دیتاویوو هم اضافه میشه.. در اصل دیتاویوو موجودیتی نیست و یه نگاه با یه فیلتر خاص به دیتاتیبله و اطلاعات توش نیست

ali190
شنبه 24 دی 1390, 14:22 عصر
ممنون از توضیحاتتون
ولی من زمانیکه میخوام تو دیتاستم توسط دیتا آداپتر یه جدول درست کنم ، میتونم اون جدول رو در Select command اش با هر شرطی بسازم
میتونم بگم یه جدول در دیتاستم Fill کن که فقط افرادش مونث باشن
این که فرقی با دیتاویو نداشت؟!

shadi khanum
شنبه 24 دی 1390, 15:52 عصر
بله شما میتونی موقع ساخت دیتاتیبلتون واسش شرط بذاری ولی اینجوری برای هر شرطی که بخوای تو برنامت داشته باشی مجبوری یه دیتاتیبل جدا تعریف کنی..
فرض کن تو یه گرید داری که میخوای همه افرادت توش نشون داده بشن و همچنین دو تاکمبو داری که یخوای تو یکی آقا ها و تو یکی خانوم ها رو داشته باشی.. اگه نخوای از دیتاویوو استفاده کنی مجبوری سه تا دیتاتیبل داشته باشی و ضمنا اگه تو گریدت یه آقا یا خانوم جدید اضافه بشه به اون دوتا دیتاتیبل دیگه اضافه نمیشن ولی اگه از دیتاویوو استفاده کنی، یه دیتاتیبل کلی بدون شرط fill میکنی و از روش دوتا دیتاویوو میسازی با شرط آقا و خانوم.. حالا اگه از گرید اصلیت فردی رو حذف کنی یا کسی رو اضافه کنی اتوماتیک توی دو تا کمبوی آقا و خانوم تغییرات رو مشاهده میکنی چون دیتاویوو وجود خارجی نداره و یه فیلترینگ روی دیتاتیبل..
موفق باشی