ايران ويج

نسخه‌ی کامل: LINQ to SQL از صفر تا جایی که بتونیم
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
بسم الله الرحمن الرحیم

سلام به دوستان خوبم من سعی کردم تا اینجا که بخش 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]
سلام.
ببینم تکلیف dataset و datagrid و datatable و dataadapter و بقیه دیتاها چی میشه؟
بالاخره ما نیاز به کامپوننت جایگزینی با امکانات دیتاست داریم.
اگه کامپوننت جایگزین برای این ها هست که معرفی کن. اگه نه بگو چطور این ها رو در linq استفاده کنیم.
مثلا من یه تابع دارم که تیبل برمیگردونه. با استفاده از linq چطور بریزمش تو دیتاست؟
سلام.
این که به همون روش سابق دیتاست رو پر کرده.
سلام.
من خیلی سرچ کردم. ظاهرا برای استفاده از دیتاست باید به همون روش کلاسیک و استفاده از کانکشن استرینگ و SqlConnection و دیتاآداپتر استفاده کرد.
حسین جان شما که تو یاهو به من گفتی کلا دیگه نیازی به ado.net نیست. آیا کامپوننت جایگزین برای کامپوننت های ado سراغ داری؟
سلام مثلا چه نیازی به dataadaptor و غیره داری؟؟ من از کافی نت میام سایت دیر به دیر میام.
نقل قول: مثلا من یه تابع دارم که تیبل برمیگردونه.
اگه منظورتو درست متوجه شدم میخای tabale رو نشون بدی... و تابعت در sql نوشته شده ، اون تابع رو مانن stor procedure ها به linq اضافه کن حالا اون تابعب که به کلاس بانکت اضافه میشه مقدار table بر میگردونه که میتونی مستقیم انتصابش بدی به دیتاگرید...
سلام.
میخوام قبل وصل کردن به دیتاگرید بریزم تو دیتاست و روش تغییرات بدم. تو دیتاست دست آدم باز تره.
سلاموپس چرا متوقف شدی.یه سری نکات کلیدی بزار برامون. مثل سرچ کردن . اتصال بانک حین اجرا.....
سلام آقای مهندس به نظر مطالب خوبیه
فعلا نخوندم فقط save کردم بازم ممنون :(
با سلام خدمت دوستان .

انگار این تاپیک دیگه متروکه شده.ولی سوال من !!!!
چه جوری میشه فیلد کلید یک جدول رو با linq آپدیت کرد؟؟؟؟؟
سلام
من همزمان با این که خودم یاد میگرفتم این تاپیک رو هم جلو میبردم
دیدم کسی استقبال نمیکنه منم سرد شدم.
حالا شما اگر اطلاعاتی در این زمینه میخای پیشنهاد میکنم یه سری به فروم سایت برنامه نویس بزن
(۱۷-شهریور-۱۳۸۹, ۱۷:۳۶:۲۸)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
صفحه‌ها: 1 2 3 4