امتیاز موضوع:
  • 4 رأی - میانگین امتیازات: 4.5
  • 1
  • 2
  • 3
  • 4
  • 5
LINQ to SQL از صفر تا جایی که بتونیم
نویسنده پیام
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #12
RE: LINQ to SQL از صفر تا جایی که بتونیم
بسم الله الرحمن الرحیم

سلام به دوستان خوبم من سعی کردم تا اینجا که بخش 5 آموزش بود کارهای اصلی که میشه با LINQ انجام داد برای پایگاه های داده ای رابطه ای رو بگم بعد از این هم که کمتر میتونم بیام ایرانویج ولی سعی میکنم غیر از کلیات جزئیات دیگری هم در حد توان خودم بگم ، بقیه دوستان هم اگه آموزش مفیدی در این باره دارند میتونن به رشد تاپیک کمک کندد.

قسمت پنجم آموزش LINQ to SQL
در این آموزش قصد داریم نحوه استفاده از Stor Procedure که پروسیجر های ذخیره شده در سرور هستند را بیان کنیم و بعد از آن بپردازیم به نحوه join کردن جداول.

Store Procedure
مثال قبلی را میخواهیم با استفاده از stor procedure عمل درج در آن انجام دهیم
بعد از تعریف stor procedure در سرور که با server explorer دات نت نیز قابل انجام هست
باید آن را مانند جداول به LINQ معرفی کنیم (از همان روش درگ دراپ)
تعریف stor procedure برای درج در جدول cudtomers :
[تصویر:  attachment.php?aid=3878]

و اضافه کردن آن به LINQ :

[تصویر:  attachment.php?aid=3879]

همینطور که میبینید قسمت سمت راست LINQ مربوط به store procedure ها میباشد.
حالا یک دکمه جدید به فرم اضافه میکنیم و text آن را insert by SP قرار میدهیم.
و کد زیر را برای insert کردن استفاده میکنیم.
کد:
DataBase.InsertCustomers("Hosein Mansouran", "09166666", "khorramshahr");

Join in LINQ to SQL

بانک مثال ما تشکیل شده است از سه جدول :
1)جدول اول : اطلاعات مشتری (customers)
2) جدول دوم : اطلاعات کالا(kala)
3)جدول سوم : جدول خرید(kharid)
جدول خرید دارای سه فیلد است kala_id که کد کالای خریداری شده در آن قرار میکیرد Cus_id که کد مشتری یا همان خریدار در آن قرار میگیرد و Tedad که تعداد کالا را مشخص میکند
فرض کرده ایم که هر مشتری هر جنس را فقط یک مرتبه اما به هر تعداد میتواند خریداری کند.
. بنا بر این ارتباطات(relation ها) در این جداول به شکل زیر میباشد.
[تصویر:  attachment.php?aid=3880]

حالا مساله این است:
میخاهیم نام و آدرس خریدار و نام کالا و قیمت واحد،قیمت کل و تعداد خریداری شده را با join این سه جدول بدست آوریم.
کد:
var q = from k in DataBase.kalas
join kh in DataBase.kharids
on k.kala_ID equals kh.kala_ID
join c in DataBase.customers on kh.cus_ID equals c.CusID
select new {c.name,c.adres,k.name_kala,k.gheymat,kh.tedad,gheymat_kol=kh.tedad*k.gheymat};
dataGridView1.DataSource = q;

کلمه کلیدی join برای join دو جدول و کلمات onو equals مشخص میکنند جدول بر چه اساس joinشود . نکته مهم قیمت کل است که باید بدست میاوردیم.
نتیجه:
[تصویر:  attachment.php?aid=3881]


فایل‌(های) پیوست شده بندانگشتی (ها)
               

(آخرین ویرایش در این ارسال: ۲۵-شهریور-۱۳۸۸, ۱۸:۳۹:۰۶، توسط HoseinVig.)
۲۵-شهریور-۱۳۸۸, ۱۸:۳۵:۵۴
ارسال‌ها
پاسخ
تشکر شده توسط : yousefzade, talal, poorani, lord_viper, Payman62, sav68, alaska, cpdtm, bia2varavi, mahvand74, belle711
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #13
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام.
ببینم تکلیف dataset و datagrid و datatable و dataadapter و بقیه دیتاها چی میشه؟
بالاخره ما نیاز به کامپوننت جایگزینی با امکانات دیتاست داریم.
اگه کامپوننت جایگزین برای این ها هست که معرفی کن. اگه نه بگو چطور این ها رو در linq استفاده کنیم.
مثلا من یه تابع دارم که تیبل برمیگردونه. با استفاده از linq چطور بریزمش تو دیتاست؟
۰۲-مهر-۱۳۸۸, ۰۰:۱۱:۰۷
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #14
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام.
این که به همون روش سابق دیتاست رو پر کرده.
۰۲-مهر-۱۳۸۸, ۰۰:۳۵:۱۸
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #15
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام.
من خیلی سرچ کردم. ظاهرا برای استفاده از دیتاست باید به همون روش کلاسیک و استفاده از کانکشن استرینگ و SqlConnection و دیتاآداپتر استفاده کرد.
حسین جان شما که تو یاهو به من گفتی کلا دیگه نیازی به ado.net نیست. آیا کامپوننت جایگزین برای کامپوننت های ado سراغ داری؟
۰۲-مهر-۱۳۸۸, ۰۰:۵۲:۱۳
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #16
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام مثلا چه نیازی به dataadaptor و غیره داری؟؟ من از کافی نت میام سایت دیر به دیر میام.
نقل قول: مثلا من یه تابع دارم که تیبل برمیگردونه.
اگه منظورتو درست متوجه شدم میخای tabale رو نشون بدی... و تابعت در sql نوشته شده ، اون تابع رو مانن stor procedure ها به linq اضافه کن حالا اون تابعب که به کلاس بانکت اضافه میشه مقدار table بر میگردونه که میتونی مستقیم انتصابش بدی به دیتاگرید...

۰۵-مهر-۱۳۸۸, ۱۷:۱۵:۵۲
ارسال‌ها
پاسخ
تشکر شده توسط : cpdtm
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #17
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام.
میخوام قبل وصل کردن به دیتاگرید بریزم تو دیتاست و روش تغییرات بدم. تو دیتاست دست آدم باز تره.
۰۵-مهر-۱۳۸۸, ۱۸:۰۲:۴۶
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
farzan_elh آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: آبان ۱۳۸۸

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #18
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلاموپس چرا متوقف شدی.یه سری نکات کلیدی بزار برامون. مثل سرچ کردن . اتصال بانک حین اجرا.....
۱۵-آبان-۱۳۸۸, ۱۳:۲۱:۱۲
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
arezoo.naciri آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اسفند ۱۳۸۸

تشکرها : 1
( 1 تشکر در 1 ارسال )
ارسال: #19
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام آقای مهندس به نظر مطالب خوبیه
فعلا نخوندم فقط save کردم بازم ممنون :(
۰۵-اسفند-۱۳۸۸, ۱۴:۵۹:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
masoodinfo آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۹

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #20
RE: LINQ to SQL از صفر تا جایی که بتونیم
با سلام خدمت دوستان .

انگار این تاپیک دیگه متروکه شده.ولی سوال من !!!!
چه جوری میشه فیلد کلید یک جدول رو با linq آپدیت کرد؟؟؟؟؟
۱۷-شهریور-۱۳۸۹, ۰۲:۰۸:۲۱
ارسال‌ها
پاسخ
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #21
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام
من همزمان با این که خودم یاد میگرفتم این تاپیک رو هم جلو میبردم
دیدم کسی استقبال نمیکنه منم سرد شدم.
حالا شما اگر اطلاعاتی در این زمینه میخای پیشنهاد میکنم یه سری به فروم سایت برنامه نویس بزن

۱۷-شهریور-۱۳۸۹, ۱۷:۳۶:۲۸
ارسال‌ها
پاسخ
masoodinfo آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۹

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #22
RE: LINQ to SQL از صفر تا جایی که بتونیم
(۱۷-شهریور-۱۳۸۹, ۱۷:۳۶:۲۸)HoseinVig نوشته است: سلام
من همزمان با این که خودم یاد میگرفتم این تاپیک رو هم جلو میبردم
دیدم کسی استقبال نمیکنه منم سرد شدم.
حالا شما اگر اطلاعاتی در این زمینه میخای پیشنهاد میکنم یه سری به فروم سایت برنامه نویس بزن

دوست عزیز یعنی الان شما دیگه کار نمی کنید؟چی کار می کنید پس؟ Biggrin
من شنیدم پروژه linq متوقف شده و دیگه توسعه پیدا نمی کنه درست؟Amaze

من وقتی می خوام فیلد کلیدم رو آپدیت کنم با error زیر مواجه میشم.
کد php:
Value of member 'code' of an object of type 'Bime' changed.
A member defining the identity of the object cannot be changed.
Consider adding a new object with new identity and deleting the existing one instead

فیلد code من auto number هم نیست و nchar هست .این خطا در صورتی که فقط و فقط فیلد کلید رو آپدیت کنم ایجاد میشه و در مورد بقیه فیلدها مشکلی نداره یعنی کد آپدیت مشکلی نداره.Sad
۱۷-شهریور-۱۳۸۹, ۲۱:۴۷:۰۴
ارسال‌ها
پاسخ
تشکر شده توسط : cpdtm


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکلات linq Payman62 2 4,934 ۲۰-مرداد-۱۳۹۰, ۰۹:۳۶:۱۹
آخرین ارسال: peyman68_2005

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS