PDA

View Full Version : سوال: انتصاب یک فیلد از یک Join به ورودی Eval



اوبالیت به بو
پنج شنبه 14 دی 1391, 14:13 عصر
درود بر شما

من یک دستور Join برروی 3 جدول دارم که یکسری رکورد رو برام واکشی می کنه. حال برای یک Button درون TemplateField گرید مربوطه باید مقدار CommandArgument رو تنظیم کنم. مساله اینجاست که اسم فیلد کلید هر سه جدول ID هست.

در SQL برای اینکه مشخص کنیم این ستون ID مربوط به کدام جدول هست میایم اسم جدول و بعد نام ستون رو می نویسیم، به عنوان مثال: Repairs.ID یا Students.ID

حال من برای Eval باید بگم که منظور من از ID جدول x هست. یعنی مثلا: Eval("Repairs.ID") که البته از این دستور اشکال گرفته میشه...

توضیح بیشتر: از اونجایی که تعداد ستون های جداول زیاد هستند در دستور Select از * استفاده کردم بنابراین نمی تونم از دستور Aliance در SQL استفاده کنم. این روش رو گذاشتم برای آخرین تلاش.

A.S.Roma
پنج شنبه 14 دی 1391, 14:51 عصر
فقط به عنوان یه راه حل (نه لزوما" منطقی) و بادر نظر گرفتن شرایطی که گفتین :
SELECT *, tableName.ID AS tableID
FROM ....

اوبالیت به بو
پنج شنبه 14 دی 1391, 15:08 عصر
و غیر از این؟

اوبالیت به بو
شنبه 16 دی 1391, 17:11 عصر
آیا راهی برای این کار وجود داره؟

اگر دستوری شامل یک Join با ستونهای هم نام داشته باشیم چور می تونیم ستون ها رو تفکیک کنیم؟

fakhravari
شنبه 16 دی 1391, 17:48 عصر
میتونید با هم union کنید.
اگر مطالب و فیلد ها یکی هستند

اوبالیت به بو
شنبه 16 دی 1391, 18:06 عصر
چرا باید Union کنم؟

اگر Union کنم بازم مشکل تفکیک اسامی پیش میاد

mehdi.mousavi
شنبه 16 دی 1391, 20:36 عصر
درود بر شما
من یک دستور Join برروی 3 جدول دارم که یکسری رکورد رو برام واکشی می کنه. حال برای یک Button درون TemplateField گرید مربوطه باید مقدار CommandArgument رو تنظیم کنم. مساله اینجاست که اسم فیلد کلید هر سه جدول ID هست.
در SQL برای اینکه مشخص کنیم این ستون ID مربوط به کدام جدول هست میایم اسم جدول و بعد نام ستون رو می نویسیم، به عنوان مثال: Repairs.ID یا Students.ID
حال من برای Eval باید بگم که منظور من از ID جدول x هست. یعنی مثلا: Eval("Repairs.ID") که البته از این دستور اشکال گرفته میشه...
توضیح بیشتر: از اونجایی که تعداد ستون های جداول زیاد هستند در دستور Select از * استفاده کردم بنابراین نمی تونم از دستور Aliance در SQL استفاده کنم. این روش رو گذاشتم برای آخرین تلاش.

سلام.
قبل از اینکه پاسخ سوالتون رو بدم اجازه بدید بگم که نوشتن SELECT * کار جالبی نیست و معایب زیادی داره؛ برای همین ترجیحا از * استفاده نکنید و فقط ستون های مورد نظر رو از بانک بگیرید. با این توضیح، اگر باز هم اصرار به انجام اینکار داشته باشید، میتونید با شماره اندیس ستون (http://forums.asp.net/t/1170874.aspx) داده مورد نظر رو بخونید.

موفق باشید.