PDA

View Full Version : آیا می شود ار داده های دیتا تیبل select کرد ؟



vapa_71
سه شنبه 10 بهمن 1391, 20:06 عصر
سلام بچه ها

فرض بگیرید من 2 تا جدول دارم که یکیش کلید داره (شکل اول ID) و جدول دوم کلید نداره (شکل دوم) حالا اگه بخوام یک دیتاتیبیل داشته باشم که مثل شکل سوم بشه چکار باید انجام شرطش اینه که ID جدول اول برابر یک مقدار توی textbox باشه
اصلا شدنی هست ؟ و اگه شدنی لطفا خواهشن کد بدین !

vapa_71
سه شنبه 10 بهمن 1391, 20:16 عصر
لطفا سوالی که توی عنوان هم پرسیدم جواب بدین

aliasghar2
سه شنبه 10 بهمن 1391, 20:51 عصر
سلام

فرض بگیرید من 2 تا جدول دارم که یکیش کلید داره (شکل اول ID) و جدول دوم کلید نداره (شکل دوم) حالا اگه بخوام یک دیتاتیبیل داشته باشم که مثل شکل سوم بشه چکار باید انجام شرطش اینه که ID جدول اول برابر یک مقدار توی textbox باشه
اصلا شدنی هست ؟
واسه این کار باید بین جداولت join بزنی اینجوری
select * from table1 join table2 on table1.KIND=table2.KIND where Table1.ID=@ID

aliasghar2
سه شنبه 10 بهمن 1391, 20:53 عصر
آیا می شود ار داده های دیتا تیبل select کرد


اینو یادم رفت بگم
dtData.Select("ID=1 AND ID2=3");

vapa_71
سه شنبه 10 بهمن 1391, 20:56 عصر
سلام

واسه این کار باید بین جداولت join بزنی اینجوری
select * from table1 join table2 on table1.KIND=table2.KIND where Table1.ID=@ID

MODEL هم مهمه توی این جدول ممکنه 2 تا KIND مشابه وجود داشته باشه

vapa_71
سه شنبه 10 بهمن 1391, 21:17 عصر
میشه با 2 تا فیلد join بشن ؟

uniqueboy_ara
سه شنبه 10 بهمن 1391, 21:36 عصر
1. در طراحی دیتابیس یکی از اصول اولیه، داشتن کلید برای هر جدوله و جدولی که کلید نداشته باشه جایی در دیتابیس نخواهد داشت :)
2. داخل SQL یه قابلیتی به نام ساختن View وجود داره، که خیلی راحت و بی دردسر میتونی جدول دلخواه خودتونو از بین هر چند تا جدول که دوست داسته باشید ( به شرط به هم پیوسته بودن ) ایجاد کنید

aliasghar2
سه شنبه 10 بهمن 1391, 21:48 عصر
. داخل SQL یه قابلیتی به نام ساختن View وجود داره، که خیلی راحت و بی دردسر میتونی جدول دلخواه خودتونو از بین هر چند تا جدول که دوست داسته باشید ( به شرط به هم پیوسته بودن ) ایجاد کنید
این روش کار رو راحت میکنه ولی اگه هدفت یادگیری باشه زیاد جالب نیست

میشه با 2 تا فیلد join بشن ؟
در مورد این هم باید یگم که بله میشه می تونی با and دی یک join جند فیلد رو مقایسه کنی

vapa_71
سه شنبه 10 بهمن 1391, 22:14 عصر
1. در طراحی دیتابیس یکی از اصول اولیه، داشتن کلید برای هر جدوله و جدولی که کلید نداشته باشه جایی در دیتابیس نخواهد داشت :)
2. داخل SQL یه قابلیتی به نام ساختن View وجود داره، که خیلی راحت و بی دردسر میتونی جدول دلخواه خودتونو از بین هر چند تا جدول که دوست داسته باشید ( به شرط به هم پیوسته بودن ) ایجاد کنید

نظر شما درسته اما وقتی نمیشه واسه جدول کلید گذاشت چی؟
شما بگید چطور میشه توی جداول بالا (جدول دوم ) کلید گذاشت شما فکر کن مثلا جدول دوم لیست کالای فروش هست که یک مدل مثلا تلویزیون و یک نوع داره مثلا سامسونگ ، ال جی ، و ..... جدول اول هم فرض کن یک مشتری که ID داره و تلویزیون سامسونگ و ال جی رو با هم خریده حالا چطور کلید بزاریم واسه جدول دوم ؟

vapa_71
سه شنبه 10 بهمن 1391, 22:16 عصر
این روش کار رو راحت میکنه ولی اگه هدفت یادگیری باشه زیاد جالب نیست

در مورد این هم باید یگم که بله میشه می تونی با and دی یک join جند فیلد رو مقایسه کنی

یعنی اینطور ؟

select * from table1 join table2 on table1.MODEL=table2.MODEL AND table1.KIND=table2.KIND where Table1.ID=@ID

aliasghar2
سه شنبه 10 بهمن 1391, 22:29 عصر
اره می تونی تستش کنی:بامزه:

uniqueboy_ara
سه شنبه 10 بهمن 1391, 22:37 عصر
برو از یه کلید ساز کمک بگیر :لبخندساده:
کلید که حتما نباید چیز خاصی باشه، شما یه فیلد از نوع int بزار و تنظیم کن که Auto Increment باشه! همین :چشمک:


این روش کار رو راحت میکنه ولی اگه هدفت یادگیری باشه زیاد جالب نیست
نوشتن ویندوز فرم از طریق ویژوال استودیو هم کار رو راحت می کنه! چون شما نیازی به نوشتن کدهای زیرساخت نداری! ولی آیا از نظر آموزشی هم درست نیست؟؟؟؟ برنامه نویس باید از "ب" بسم الله همه رو خودش بنویسه؟
همه این امکانات برای راحتی کار برنامه نویس ایجاد شده تا فارغ از دغدغه پیاده سازی، بتونه تمام اون تحلیلی که انجام داده رو به نحو احسن اجرا کنه! نه اینکه بیاد وسط پروژه یه هفته سر یه join گیر کنه

aliasghar2
سه شنبه 10 بهمن 1391, 22:44 عصر
نوشتن ویندوز فرم از طریق ویژوال استودیو هم کار رو راحت می کنه! چون شما نیازی به نوشتن کدهای زیرساخت نداری! ولی آیا از نظر آموزشی هم درست نیست؟؟؟؟ برنامه نویس باید از "ب" بسم الله همه رو خودش بنویسه؟
همه این امکانات برای راحتی کار برنامه نویس ایجاد شده تا فارغ از دغدغه پیاده سازی، بتونه تمام اون تحلیلی که انجام داده رو به نحو احسن اجرا کنه! نه اینکه بیاد وسط پروژه یه هفته سر یه join گیر کنه
منم مشکلی با این غظیه ندارم ولی مطمئن باشید که اگه کسی این مسائل رو یاد بگیره ضرر نکرده و یادگیریش باعث میشه درک بیشتر در مورد کاری که اون ابزار میکنه رو بفهمه که در صورت نیاز تغییرات کوچیک مجبور نشه دوباره از اون ابزار استفاده کنه

uniqueboy_ara
سه شنبه 10 بهمن 1391, 22:50 عصر
خوب مهندسای مایکروسافت خیلی زودتر از ما با این مساله فکر کردن :لبخندساده: اگه دقت کرده باشید، وقتی داخل Management Studio میخواید View بسازید، اون زیرش کدی رو هم که باعث ایجا اون View میشه رو هم می نویسه! تا کاربر بدونه دقیقا داره تو پس زمینه چه اتفاقی میفته، و از طرفی جنبه آموزشی هم داشته باشه

aliasghar2
سه شنبه 10 بهمن 1391, 22:54 عصر
امید وارم صاحب این تاپیک نارجت نشه که این بحث تاپیکو عوض کردیم


خوب مهندسای مایکروسافت خیلی زودتر از ما با این مساله فکر کردن :لبخندساده: اگه دقت کرده باشید، وقتی داخل Management Studio میخواید View بسازید، اون زیرش کدی رو هم که باعث ایجا اون View میشه رو هم می نویسه! تا کاربر بدونه دقیقا داره تو پس زمینه چه اتفاقی میفته، و از طرفی جنبه آموزشی هم داشته باشه

اره اگه این جوری قکر کنیم خیلی خوبه و می تونه سمپل خوبی باشه ولی فکر کنم باعث تمبل شدن میشه

Mahmoud.Afrad
چهارشنبه 11 بهمن 1391, 14:24 عصر
جداولت نرمال نیست. ساختار جداولت باید تغییر کنه تا از این همه داده های تکراری پرهیز و روابط هم مشخص بشه.