PDA

View Full Version : سوال: نمایش تکمیلیتر رکوردهای چند جدول و تشخیص جدول مورد نظر



mohsen.nsb44
سه شنبه 09 آبان 1391, 09:30 صبح
من با استفاده از دستور union از چند جدول سلکت گرفتم و در کنترلی مثل دیتالیست عنوانش رو نشون میدم
حالا میخوام زمانی که بر عنوان کلیک شد به یک صفحه دیگه منتقل بشه و اطلاعات تکمیلی تر رو نمایش بده

این کار با کوئری استرینگ به راحتی امکان پذیره
اما یک مشکل اساسی وجود داره و اونم اینه که اطلاعات از چند جدول مختلف نمایش داده میشن و من نمیدونم کدوم جدول هستش
چرا که برای نمایش در یک کنترل دیگر باید جدول مشخص شده باشه و شرطی که id رو میفرسته و بر اساس اون ایدی نمایش میده
مشکل من اینه که در اون صفحه ای که میخوام اطلاعات به صورت تکمیلیتر نشون داده بشن
چه کدی بنویسم که خودش تشخیص بده واسه کدوم جدوله اون رکوردی که فرستادم.
اگه روش دیگه ای هم سراغ دارین بگین استقبال میکنم
اگه نمونه مثالی هم بزارین بینهایت ممنون میشم

aliblue
سه شنبه 09 آبان 1391, 10:06 صبح
توی جدول هات میتونی یه فیلد بذاری که نوع جدول رو مشخص میکنه.حالا وقتی کلیک شد مقدار اون فیلد رو بخون و بر اساس اون تشخیص بده از کدوم جدوله.

orca13
سه شنبه 09 آبان 1391, 10:08 صبح
درود!
من دقیقا نگرفتم که چیرو به کاربر نشون میدی اون اول، ولی فک کنم اگه شما اون SELECT اولی رو به عنوان ی VIEW در نظر بگیری و بعد تو صفحه دوم (که میخوای اطلاعات رو به تفصیل نشون بدی)، اطلاعات رو از همون VIEW بخونی، مشکلت حل بشه.

موفق باشی.

mohsen.nsb44
سه شنبه 09 آبان 1391, 10:52 صبح
توی جدول هات میتونی یه فیلد بذاری که نوع جدول رو مشخص میکنه.حالا وقتی کلیک شد مقدار اون فیلد رو بخون و بر اساس اون تشخیص بده از کدوم جدوله.
گیریم با روش شما اسم جدول بدست اومد الان گریدویو رو چطوری به این جدول باید بایند بکنم؟

fakhravari
سه شنبه 09 آبان 1391, 11:31 صبح
بیا جون

SELECT 'CategoryID.aspx?CategoryID=' + CONVERT(NVARCHAR(20), CategoryID) ,[CategoryName]as Title FROM B_Categories where CategoryName LIKE N'%بر%'
UNION
SELECT 'ForumID.aspx?ForumID=' + CONVERT(NVARCHAR(20), ForumID) ,[ForumName]as Title FROM [B_Forums] where ForumName LIKE N'%گز%'
UNION
SELECT 'TopicID.aspx?TopicID=' + CONVERT(NVARCHAR(20), TopicID) ,[Subject]as Title FROM [B_Topics] where [Subject] LIKE N'%برنامه%'

aliblue
سه شنبه 09 آبان 1391, 13:20 عصر
گیریم با روش شما اسم جدول بدست اومد الان گریدویو رو چطوری به این جدول باید بایند بکنم؟
خوب نام جدول رو هم با کوئری استرینگ بفرست به اون صفحه.حالا تو اون صفحه بر اساس نام جدول فرستاده شده،دستور select رو اجرا کن.
ولی روشی که آقای فخراوری گفتن بهتره.البته بستگی داره.مثلا اگه توی جدول اولی id مثلا 1و2و3و... داشته باشی و توی جدول دومی هم به همین ترتیب،یعنی id ها یکتا نباشن،در اینصورت کار نمیکنه.