PDA

View Full Version : دستور find میخام . از نوع مخصوص



RIG000
چهارشنبه 15 اردیبهشت 1389, 11:59 صبح
من میخام select کنم از هر جدول یک یا دو تا مقدار های فیلد داخل یه جدول و 2تا مقدارهای دیگه تو یه جدول دیگه و ......
و میخام اینارو تو یه رکورد تو datagidview نمایش بدم .????????????????????????????

mehdi.mousavi
چهارشنبه 15 اردیبهشت 1389, 13:03 عصر
من میخام select کنم از هر جدول یک یا دو تا مقدار های فیلد داخل یه جدول و 2تا مقدارهای دیگه تو یه جدول دیگه و ...... و میخام اینارو تو یه رکورد تو datagidview نمایش بدم.

سلام.
من 3 بار سوال شما رو خوندم، اما حقیقتا شک دارم درست متوجه شده باشم. میشه زحمت بکشید خودتون یکبار متنی رو که ارسال کرده اید بخونید؟

اگر منظورتون انتخاب رکوردهای متفاوت از جداول متفاوت و تلفیق اونها تحت قالب یک Result Set هستش، می تونید دو دستور SELECT بنویسید و نتایج رو با هم UNION کنید.

اگر منظورتون مطلب دیگه ای هستش، لطفا بیشتر توضیح بدید.

پاورقی: از چه RDBMS ای استفاده می کنید؟

RIG000
چهارشنبه 15 اردیبهشت 1389, 13:48 عصر
ببینین من راستش یه بانک انتخاب واحد دانشجویی ساختم که چندین جدول داره و به هم ship شدن و ارتباط دارن و با #C به صورت ویزاردی به بانک اتصال پیدا کرد م حالا یه فرم تو #C دارم که باید با شماره دانشجویی کسی رو وارد کنم اطلاعاتش در بیاد . (تا اینجا تونستم اما فقط اطلاعات یه جدول رو دارم من اینجوری میخام ک اگه شماره دانشجویی کسی رو وارد کردم و از combox هم رشتش رو انتخاب کنم اینجوری بتونم ببینم که اگه همچین شماره دانشجویی تو قسمت کامپیوتر بگرده و اطلاعات طرف از قبیل نام نام خانوادگی ترم چندم هست و ورودی کی هست با کی کلاس داره و چه درس هایی رو ورداشته . اما من فقط با select میتونم اطلاعات یه جدول رو در بیارم و نمی تونم ارتباط اون دانشجو رو با دیگر جدول ها در بیارم تا اطلاعاتش رو نشون بدم ) در ضمن من باید جدول رشته هام جدا باشه؟ مثلا کامپیوتر و حسابداری و برق و عمران جدا باشه ؟اما من دانشجویی که کامپیوتر میخونه رو تو جدولی قرار دادم که دانشجو های رشته های دیگه همه هستن یعنی از یه جدول واسه کل دانشجو ها استفاده کردم که فکر کنم دقیق باشه. میشه کد نویسی کنین من انقد ر فکر کردم موخم سوت زده

Shahram_Shobeiri
چهارشنبه 15 اردیبهشت 1389, 14:00 عصر
سئوال پست اولتون واقعاً باحاله :گیج:
لزومی نداره دانشجوهای رشته های مختلف رو در چند جدول تفکیک کنید. تنها کافیه که رشته ها رو در یک جدول مجزا قرار بدید و در جدول دانشجو ها به جای قرار دادن نام رشته، کد رشته (که از طریق جدول رشته ها تعیین میشه) رو قرار بدید. اساساً برای کلیه متن های تکرار پذیر باید از این روش استفاده کرد. مثل نام استاد، نام درس و ...
برای اینکه بتونید از طریق دستور SELECT اطلاعات کامل یک موجودیت مثل دانشجو رو که با روش فوق در سیستم ثبت شده بدست بیارید باید از دستور JION استفاده کنید. که بحث تقریباً مفصلیه که با کمی جستجو کاملاً از اون سر در خواهید آورد.

RIG000
چهارشنبه 15 اردیبهشت 1389, 14:05 عصر
مجازی یه چند تا کد نویسی نمیکنی پس خیلی کاردارم آره؟ آدرس راهنمایی نداری بدی؟

RIG000
پنج شنبه 16 اردیبهشت 1389, 21:31 عصر
ببینین من راستش یه بانک انتخاب واحد دانشجویی ساختم که چندین جدول داره و به هم ship شدن و ارتباط دارن و با C#‎ به صورت ویزاردی به بانک اتصال پیدا کرد م حالا یه فرم تو C#‎ دارم که باید با شماره دانشجویی کسی رو وارد کنم اطلاعاتش در بیاد . (تا اینجا تونستم اما فقط اطلاعات یه جدول رو دارم من اینجوری میخام ک اگه شماره دانشجویی کسی رو وارد کردم و از combox هم رشتش رو انتخاب کنم اینجوری بتونم ببینم که اگه همچین شماره دانشجویی تو قسمت کامپیوتر بگرده و اطلاعات طرف از قبیل نام نام خانوادگی ترم چندم هست و ورودی کی هست با کی کلاس داره و چه درس هایی رو ورداشته . اما من فقط با select میتونم اطلاعات یه جدول رو در بیارم و نمی تونم ارتباط اون دانشجو رو با دیگر جدول ها در بیارم تا اطلاعاتش رو نشون بدم ) در ضمن من باید جدول رشته هام جدا باشه؟ مثلا کامپیوتر و حسابداری و برق و عمران جدا باشه ؟اما من دانشجویی که کامپیوتر میخونه رو تو جدولی قرار دادم که دانشجو های رشته های دیگه همه هستن یعنی از یه جدول واسه کل دانشجو ها استفاده کردم که فکر کنم دقیق باشه. میشه کد نویسی کنین من انقد ر فکر کردم موخم سوت زده
میشه رو این کد من دقت کنید و بدونید با صحبت های بالا که کردم جور میشه؟
که نمیشه!!
//" SELECT (نام فیلدها ) FROM (نام جدول ها ) WHERE شماره دانشجویی=[]
که این فقط یه دانشجورو از اطلاعات میکشه بیرون میشه یکی واقعا کمک کنه؟!!! مشکل دارم تو دستورات SQL یعنی خیلی تو دستوراتش مبتدیم.

mmd2009
پنج شنبه 16 اردیبهشت 1389, 22:53 عصر
دوست عزیز به نظر من که اگه منظورتون رو درست متوجه شده باشم

کافیه به تعداد جدول های که می خواهید بهشون متصل بشید و دستور Select ایجاد کنید کد جستجو بذارید

و هر مقداری رو که می خواهید از هر جدول بگیرید بر اساس کد دانشجویی باشه رو تو textbox های صفحه نمیاش بدید

البته نمی دونم درست منظورم رو فهمیدید یا نه

ولی توصیه می کنم تو این کار از گرید ویو دیگه استفاده نکنید و برای زیبایی کار از textbox ه استفاده بکنید

العا یک مثال برات میفرستم:

RIG000
پنج شنبه 16 اردیبهشت 1389, 23:20 عصر
یه مثال بزنین اگه بشه برنامه رو زیپ کنم بزارم تا یه تیکش رو بنویسین من بقیه رو از اون الگو برداری میکنم و درستش کنم ایجوری برنامه رو از نزدیک میبینین بهتر منظورمو متوجه میشین

mmd2009
جمعه 17 اردیبهشت 1389, 00:14 صبح
سلام دوست عزیز

اینم یک مثال از اون چیزی که من از حرفات فهمیدم

توضیح در مورد برنامه :

این برنامه دارای یک بانک هستش 3 تا جدول داره که نام هر کدوم اینا همراه با توضیح

1- اطلاعات شخصی دانشجو که از اونجا اطلاعات رو میگیریم
2- اطلاعات مالی که از اون جل اطلاعات مالی رو میگیریم
3- اطلاعات درسی که از اونجا اطلاعات رو میگیریم

برای مثال من یک دانشجو وارد کردم با شماره دانشجویی 870704261

کدها و برنامه رو ببینی خودت متوجه میشی

بازم مشکلی داشتی بگو

mohsensaghafi
جمعه 17 اردیبهشت 1389, 00:18 صبح
سلام دوست من.
برای این کار همونطوری که دوستمون گفتن باید از عملگر join استفاده کنید. ساده ترین قالب این عملگر بصورت زیر است. حال باید با یک سری شروط که بیتگی به دیتابیس خودتون داره، حدولی رو که لازم دارید، تشکیل بدید.
مثلاً

Student(stdno,name,family,...)
course(cno, name, unit)
takecorse(stdno,cno)

حالا فرض کن می خوای نام دانشجو و دروسی رو که گرفته رو کنار هم بیاری.

select Student.name,course.name
from student,course,takecourse
where student.stdno=takecourse.stdno
and course.cno=takecourse.cno
این طوری لیست تمام دانشجویان و دروسی رو که گرفتن رو می تونی پیدا کنی.
با توجه به همین ساختار ، می تونی بقیه حداول مورد نیازت رو هم بسازی.

mmd2009
جمعه 17 اردیبهشت 1389, 00:24 صبح
یعنی روشی که من گفتم اشتباه؟

خواهشا نگاش کنید

چون من همیشه از این روش استفاده میکنم

mehdi.mousavi
جمعه 17 اردیبهشت 1389, 10:08 صبح
یعنی روشی که من گفتم اشتباه؟ خواهشا نگاش کنید چون من همیشه از این روش استفاده میکنم

سلام.
من کد شما رو دیدم. کد شما اصلا کارآمد نیست، چون جای یک دستور SQL، شما دارید 3 دستور SQL اجرا می کنید، به بیان دیگه، جای "یک رفت و برگشت" به RDBMS، شما "3 رفت و برگشت" به RDBMS دارید...

JOIN ها برای همین منظور در نظر گرفته شدن. در واقع شما میتونید جداول رو بر اساس کلید اونها با همدیگه JOIN کنید، و توی یک بار اجرای دستور SQL، کلیه اطلاعات مورد نیازتون رو از چند جدول با همون اجرای اول دستور بگیرید.

JOIN های مختلفی وجود داره، Inner Join، Equi-Join، Outer Join، Cross Join، Self Join و ... که هر کدوم کاربرد خاصی دارند. برای توضیحات بیشتر، سوالتون رو در بخش پایگاه داده ها مطرح کنید تا دوستان براتون این مسائل رو توضیح بدن.

موفق باشید.