PDA

View Full Version : نمایش اطلاعات چند در یک datagrid



realman
سه شنبه 13 مرداد 1388, 20:39 عصر
آیا راهی وجود داره که یک تعداد از فیلدهای چند جدول رو که با هم هیچ ارتباطی ندارند، تعداد فیلد هاشون هم برابر نیست به نحوی تو یک datagrid نمایش داد؟(C#,SQL)
ترجیحا دنبال یک sql query هستم.تمام query هایی که خودم امتحان کردم فقط اطلاعات اولین جدول رو درست نشون می داد و برای بقیه جداول فیلدهاشون رو با اطلاعات تکراری پر می کرد.

afrooz_rahmati63@yahoo.com
سه شنبه 13 مرداد 1388, 21:40 عصر
به چه نحوی؟ ستون ها ی همه آورده شود و آن هایی که مقادیری برای آن ستون ها ندارند با یک مقدار Default پر شود؟

می تونید از Union استفاده کنید. فقط در Query های که ستون ها با هم متفاوت است کافی است یک ستون فرضی با همان نام را برگردانید.به عنوان مثال:


select name as col1,add as col2,'0' as accountNum,'o' as CarNum,'o' as originator
from table1
union
select 'Afrooz' as col1,'0' as col2,AccountID as accountNum,CarID as CarNum,'o' as originator
from table2
union
select 'gholi' as col1,'0' as col2,'0' as accountNum,'o' as CarNum,OriginatorID as originator
from table3


توجه بفرماييد که حتما دامنه ها بایستی با هم برابر باشند بنابراین از قبل تمامی ستون ها در تمامی query ها بايد وجود داشته باشند.

من خودم همچین راهی را زیاد قبول ندارم ، خیلی نادر نیاز به همچین کاری می شه. اگر راه بهتری یافتین به من هم بگین.

realman
سه شنبه 13 مرداد 1388, 22:14 عصر
به چه نحوی؟ ستون ها ی همه آورده شود و آن هایی که مقادیری برای آن ستون ها ندارند با یک مقدار Default پر شود؟


خیر.فقط فیلدهایی که انتخاب شدند.
در حقیقت سیستم به این شکله که کاربر به دلخواه چند جدول رو انتخاب می کنه، سپس از هر جدول چند فیلد دلخواه رو انتخاب می کنه.بعد باید قادر باشه اطلاعات اونها رو تو یک datagrid ببینه.هیچ فیلد زایدی هم نباید تو gridدیده شه.

Rejnev
سه شنبه 13 مرداد 1388, 22:26 عصر
با سلام
فکر میکنم بهتره رکورد ها رو پیمایش کنی و به گرید اضافه کنی

mn_zandy63
چهارشنبه 14 مرداد 1388, 00:08 صبح
خیر.فقط فیلدهایی که انتخاب شدند.
در حقیقت سیستم به این شکله که کاربر به دلخواه چند جدول رو انتخاب می کنه، سپس از هر جدول چند فیلد دلخواه رو انتخاب می کنه.بعد باید قادر باشه اطلاعات اونها رو تو یک datagrid ببینه.هیچ فیلد زایدی هم نباید تو gridدیده شه.

یعنی چی؟؟ این جدول ها بالاخره باید یه ارتباطی با هم داشته باشند. بدون ارتباط که معنی نمیده بخوای با هم یه جا نشونشون بدی.
یک مثال بزن. ۲ تا جدول و چند تا رکورد و بعد بگو مثلا میخوای این شکلی نشون داده بشه. ببین اصلا معنی میده!؟

realman
چهارشنبه 14 مرداد 1388, 10:27 صبح
یعنی چی؟؟ این جدول ها بالاخره باید یه ارتباطی با هم داشته باشند. بدون ارتباط که معنی نمیده بخوای با هم یه جا نشونشون بدی.
یک مثال بزن. ۲ تا جدول و چند تا رکورد و بعد بگو مثلا میخوای این شکلی نشون داده بشه. ببین اصلا معنی میده!؟

بحث معنا دار بودن یا نبودن نیست.مساله چگونگی انجام این کاره.شما فرض کنید یک معنایی داره.(که صد البته معنا داشته که من الان دنبال جوابشم.).مرسی.

mn_zandy63
پنج شنبه 15 مرداد 1388, 01:24 صبح
ببین علت اینکه میگی اطلاعات اولین جدول رو فقط درست نشون داده ولی بقیه جدول ها اطلاعات تکراری بوده٬ به این علته که به خاطر وجود نداشتن هیچ ارتباطی بین جدولهات قاعدتا cross join زدی بینشون٬ در این حالت به ازای هر رکورد از جدول دوم٬ همه رکورد های جدول اول خروجی داده میشه.
یعنی مثلا اگه جدول اول ۵۰ رکورد و جدول دوم ۳۰ رکورد داشته باشه خروجی تو ۱۵۰۰ رکورد خواهد داشت با ترکیبی از همه این رکورد ها. حالا حساب کن جدول سوم و چهارم و ..
پیشنهاد میکنم یک مثال بزنی تا بهتر بتونم کمکت کنم.
موفق باشی

afrooz_rahmati63@yahoo.com
پنج شنبه 15 مرداد 1388, 17:48 عصر
من هم با آقای زندی موافقم.بهتره که اول یک مثال بزنید.اگر جداول بدون ارتباط باشند معنی نمی دهد.درسته شما می خواهید کاربر هر ستونی را که انتخاب کرد از هر جدولی بتونید اطلاعاتشون را نشان بدین.ولی فرض کنید یک جدول اطلاعات دانشجویی و یک جدول کاملا بی ربط مثل جدول اخبار باشه؟ حالا شما می خواهید که کاربر هم بتونه هر ستونی از جدول اخبار و هر ستونی از جدول دانشجو را بدون هیچ ربطی در یک grid ببیند؟؟؟