PDA

View Full Version : نمایش پروسیجر شامل چند تیبل در دیتاست



Payman62
دوشنبه 08 فروردین 1390, 03:59 صبح
سلام.
من یه store procedure تو دیتابیسم نوشتم که 5 تا تیبل برمیگردونه. یعنی 5 تا سلکت مختلف داخلش هست که به نوعی به هم مرتبطن. از 2 تا جدول که join هستن در حالت های مختلف مثلا گروه بندی شده یا نشده یا جمع یه فیلد خاص یا ... سلکت میگیره.

تو C# توسط add new data source تیبل ها و توابع sql رو داخل یه دیتاست ریختم. اما مشکل این جاست که تابع بالا در دیتاست فقط حاوی 1 تیبل هست و اون هم اولین سلکت داخل store procedure است.

حالا 2 تا سوال دارم.

اول این که چطور بقیه سلکت های پروسیجرم رو به دیتاست اضافه کنم.

دوم این که اصلا این روش پروسیجر نوشتن که 5 تا تیبل برگردونه اصولی هست؟
( بازم میگم همه تیبل ها مرتبط به هم و مشابه هم هستن)

ma.rad
دوشنبه 08 فروردین 1390, 12:48 عصر
دوست عزیز شما باید یه store procedure ایجاد و جداول را join کنی بعد در dataset یه tableAdapter برای این store procedure ایجاد کنی-باید جدا باشه
اگر متوجه نشدی بگو تا یه نمونه برات بزارم

shadi khanum
دوشنبه 08 فروردین 1390, 13:28 عصر
اگه میگی به هم مرتبط و میشه با هم join بشه تحت یک جدول، این کارو تو همون SP انجام بده و خروجی هم همون یه جدول join شده تمام 5 تا جدولت باشه.
select * from titles where title like '%m%'
union select * from titles where pub_id= 0736

ehsanara
دوشنبه 08 فروردین 1390, 13:46 عصر
اگه همه Tableها قراره یه جدول رو بسازن و با join و Union کار میکنی چرا یه View از جدول ها نمیسازی؟ بعدش میتونی اون View رو با StoreProcedure فراخوانی کنی

Payman62
دوشنبه 08 فروردین 1390, 14:15 عصر
سلام.
متوجه پاسخ هاتون نشدم. شاید هم من منظورم رو بد بیان کردم.

ببینید تیبل ها با هم تفاوت دارند. تعداد فیلدها و نوع فیلدهاشون فرق داره. مثلا یه سلکت کل رکوردهای حاصل از join دو تیبل رو میده. سلکت دوم جمع کل رکوردهای 1 فیلد خاص حاصل از join دو تیبل رو میده. یا یک سلکت دیگه 3 تا از فیلدهارو به صورت رکوردهای گروه بندی شده بر اساس یه فیلد خاص میده. پس با union نمیشه به هم وصلشون کرد. اما همه این سلکت ها روی 2 تا تیبل که در دیتابیس توسط کلید خارجی join هستند انجام میشه.

ضمن این که من این سلکت هارو جدا از هم در جداول جدا میخوام. اگه میشد که با یه سلکت مینوشتم. این که گفتم این سلکت ها به هم مرتبط هستن منظورم این بود که مشابه هم هستند و روی 2 تا تیبل خاص در دیتابیس انجام میشه که در 1 پروسیجر قرار دادم. نه این که دقیقا مثل هم هستن.

سوالامو تکرار میکنم:

تو C# توسط add new data source تیبل ها و توابع sql رو داخل یه دیتاست ریختم. اما مشکل این جاست که پروسیجر بالا در دیتاست فقط حاوی 1 تیبل هست و اون هم اولین سلکت داخل store procedure است.


1- چطور بقیه سلکت های پروسیجرم رو به دیتاست اضافه کنم.

2- اصلا این روش پروسیجر نوشتن که 5 تا تیبل برگردونه با توجه به توضیحات پاراگراف بالاتر اصولی هست؟

Payman62
دوشنبه 08 فروردین 1390, 23:46 عصر
سلام.
میتونم تو پروسیجر های جداگانه بنویسم. ولی این جوری جمع و جور تره.

کسی راه حلی نداره ارایه بده؟

Payman62
پنج شنبه 11 فروردین 1390, 03:20 صبح
سلام.
من هنوز منتظر پاسخم. لطفا یکی راهنمایی کنه.