ورود

View Full Version : نحوه ي نوشتن چند دستور select در يك sp



Hosein.Zarei
شنبه 29 تیر 1387, 20:51 عصر
CREATE PROCEDURE myProc
AS
BEGIN
SELECT * FROM Table1
SELECT * FROM Table2
ENDمن با استفاده از dataAdpater می خواهم خروجی این sp را در یک DataSet ذخیره کنم ولی فقط Select اولی در آن ذخیره می شود.
باید چه کار بکنم؟؟؟

ASKaffash
یک شنبه 30 تیر 1387, 09:02 صبح
سلام
چه اصراری است ؟ خوب این دو Select را درون دوتا SP قرار بده و بعد ارسال کن درون یک DataSet بعدش درون DataSet شما دوجدول دارید بنام Table1 و Table2

نهمنهح
یک شنبه 30 تیر 1387, 09:42 صبح
خوب کاملا واضح است شما نتیجه هر دو select را تحت عنوان یک table در dataset ذخیره میکنید ولی باید ددر دو table متفاوت ذخیره شوند

Hosein.Zarei
یک شنبه 30 تیر 1387, 19:27 عصر
من نیاز دارم که این دو جدول را با هم ادغام و بر اساس نام شان مرتب کنم. و سپس در DataGridView نمایش دهم.
از پاسختان ممنون ولی من جوابم را نگرفتم.

رضا عربلو
یک شنبه 30 تیر 1387, 21:50 عصر
مشکلی نداره.
با اندیس یا نام جدول با استفاده از خاصیت Tables شی Dataset ات می تونی به Recordset بعدی سویچ کنی.
در DataReader هم از متد NextResult استفاده کن.

Hosein.Zarei
یک شنبه 30 تیر 1387, 23:47 عصر
مشکل من این است که نتیجه این SP که دو Select می باشد در یک DataSet و در یک جدول ذخیره نمی شود.
من می خواهم با دستور Fill نتیجه این SP در DataSet ذخیره شود.
فقط مشکل من همین است. ممنون می شوم کمک کنید!
با تشکر از دوستان

M-Gheibi
یک شنبه 30 تیر 1387, 23:55 عصر
کاری که می‌کنید اینه که دو دستور SELECT رو با استفاده از UNION با هم ادغام می‌کنید . در بخش SQL Sever جستجو کنید .

Mohammadmasih
پنج شنبه 03 مرداد 1398, 11:52 صبح
سلام و خدا قوت بنده هم همین مشکل رو دارم و متاسفانه با union برطرفذنمیشه چون فیلدهای دیتابیس من انواعشون و نامشون مختلف هست . لطفا کمکم کنید .
من یک جدول اصلی دارم که هر فیلدش خودش یک جدول جداگانه ست و اونها هم همینطور ززیرمجموعه دارن یعنی در جدولهای فرزندشون هم فیلدهاش هرکدوم یک جدول جدا هستن . حالا یک کد داخل همه جداول وجود داره و یونیک هست میخواستم ی سرچ بزارم براساس این کد که اگه کاربر کد رو وارد کرد تمام جدول های فرزند و والد مربوط به اون کد رو در یک دیتاگریدویو نمایش بده . هر کاری کردم نشد روش های زیادی رو امتحان کردم تقریبا 1 هفته ست تو نت دارم سرچ میکنم به جوابی نرسیدم لطفا کمکم کنید .

Hosein.Zarei
پنج شنبه 03 مرداد 1398, 13:24 عصر
سلام و خدا قوت بنده هم همین مشکل رو دارم و متاسفانه با union برطرفذنمیشه چون فیلدهای دیتابیس من انواعشون و نامشون مختلف هست . لطفا کمکم کنید .
من یک جدول اصلی دارم که هر فیلدش خودش یک جدول جداگانه ست و اونها هم همینطور ززیرمجموعه دارن یعنی در جدولهای فرزندشون هم فیلدهاش هرکدوم یک جدول جدا هستن . حالا یک کد داخل همه جداول وجود داره و یونیک هست میخواستم ی سرچ بزارم براساس این کد که اگه کاربر کد رو وارد کرد تمام جدول های فرزند و والد مربوط به اون کد رو در یک دیتاگریدویو نمایش بده . هر کاری کردم نشد روش های زیادی رو امتحان کردم تقریبا 1 هفته ست تو نت دارم سرچ میکنم به جوابی نرسیدم لطفا کمکم کنید .

سلام دوست عزیز

معمولا با همون union مشکل‌تون حل میشه، اگه دوتا یا بیشتر select دارید که جدول‌ها مثل هم نیستند، می‌تونید بصورت alias یه مقدار بزارید تا ستون‌های هر select مشابه هم شوند.



select id, name, price, type from product
union
select id, name, price, '' as type from service


به عنوان مثال جدول service ستونی به نام type نداره ولی بصورت مجازی براش یه مقدار ایجاد می‌کنیم و با اون دو جدول را ادغام می‌کنیم.

Mohammadmasih
جمعه 04 مرداد 1398, 14:44 عصر
سلام دوست عزیز

معمولا با همون union مشکل‌تون حل میشه، اگه دوتا یا بیشتر select دارید که جدول‌ها مثل هم نیستند، می‌تونید بصورت alias یه مقدار بزارید تا ستون‌های هر select مشابه هم شوند.



select id, name, price, type from product
union
select id, name, price, '' as type from service


به عنوان مثال جدول service ستونی به نام type نداره ولی بصورت مجازی براش یه مقدار ایجاد می‌کنیم و با اون دو جدول را ادغام می‌کنیم.


ممنونم از جوابتون. سوال داشتم .من تقریبا 128 تا جدول دارم و تعداد فیلدهاشون باهم تفاوت های زیادی دارن آیا با این روش جوابگو هست؟ و سوال بعدیم اینکه من باید برای هر جدولم ی select بنویسم و اگر بخوام از union استفاده کنم باید جدول اولم با دومی یکسان باشه و دومی باسومی؟ یا نه همه شون باید باهم یکسان سازی بشن؟

Hosein.Zarei
جمعه 04 مرداد 1398, 23:48 عصر
با این تعداد نباید مشکلی باشه
خروجی همه select ها یه جور باشه، با تعداد ستون یکسان