PDA

View Full Version : مشکل در دستور select(دانلود سورس)



programerinfonet
پنج شنبه 17 مرداد 1392, 12:46 عصر
سلام دوستان
تو سورسی که ضمیمه کردم نمی تونم به جای داده های کلید جدول اطلاعات مربوط به خود رکورد رو نمایش بدم هرکس می تونه کمکم کنه
ممنونش میشم خیلی ضروریه
توروخدا کمک کنید

لینک دانلود (http://uplod.ir/3m75sjehbwq4/WindowsFormsApplication12.rar.htm)

csharpprogramer88
پنج شنبه 17 مرداد 1392, 13:05 عصر
به جای داده های کلید

منظورت چیه؟

programerinfonet
پنج شنبه 17 مرداد 1392, 13:17 عصر
یعنی اینکه من دارم به جای به عنوان مثال مبلغ id اون رکورد رو ثبت می کنم که میخوام به جای id [ود مبلغ از جدول خودش نمایش داده بشه دستور join
این همون join سادست اما یه فرقی که داره اینه که هر توی یک دیتاگرید اون فیلد جدول یعنی اینکه اون سطر از با کدوم جدول JOIN بشه

ma.rad
پنج شنبه 17 مرداد 1392, 13:26 عصر
سوالتون واضح نیست بهتره کد اون قسمت رو بزارید بیشتر توضیح بدید!

veniz2008
پنج شنبه 17 مرداد 1392, 13:33 عصر
سلام دوستان
تو سورسی که ضمیمه کردم نمی تونم به جای داده های کلید جدول اطلاعات مربوط به خود رکورد رو نمایش بدم هرکس می تونه کمکم کنه
ممنونش میشم خیلی ضروریه
توروخدا کمک کنید

لینک دانلود (http://uplod.ir/3m75sjehbwq4/WindowsFormsApplication12.rar.htm)


یعنی اینکه من دارم به جای به عنوان مثال مبلغ id اون رکورد رو ثبت می کنم که میخوام به جای id [ود مبلغ از جدول خودش نمایش داده بشه دستور join
این همون join سادست اما یه فرقی که داره اینه که هر توی یک دیتاگرید اون فیلد جدول یعنی اینکه اون سطر از با کدوم جدول JOIN بشه
سلام.
خدا وکیلی با این توضیحات کی میتونه بهت کمک کنه؟
الان حدود 2 ساعت از ایجاد تاپیکت میگذره. اگر بخوای اینطوری توضیح بدی تا 20 پست دیگه هم کسی نمیتونه بهت کمک کنه.
در درجه اول باید خودت به خودت کمک کنی. کامل توضیح بده که چی مد نظرت هست. اگر احساس میکنی که با کلمات نمیتونی مفهوم رو برسونی از جدولت عکس بگیر و بذار. هر چقدر کامل تر توضیح بدی سریعتر به جواب میرسی دوست عزیز.

programerinfonet
پنج شنبه 17 مرداد 1392, 13:41 عصر
ببین دوست عزیز
من تو فرم اولم 4 تا جدول رو نمایش دادم که تو هر کدوم عملیات (دریافت چک ، پرداخت چک ، صدور چک و دریافت و پرداخت های نقدی) ثبت میشه و زمانی که تو هر یک از این جداول رکورد ثبت میشه یک نسخه هم از اون رکورد تو جدول داکیومنت که تو فرم 2 نمایش دادم ثبت میشه اما به جای داده ها id رکورد رو تو جدول داکیومنت ذخیره می کنم تا اگر روزی اون رکورد رو تو جدول خودش ویرایش کردم تو جدول داکیومنت هم در ظاهر اعمال بشه (تا اینجا حله ؟)
حالا این جدول داکیومنت از فیلدهای زیر تشکلی شده
نوع سند (که نام یکی از این 4 جدول هست)
طرف حساب
شماره ثبت (شماره id اون رکورد تو جدول خودش)
تاریخ ثبت (تاریخ ثبت اون رکورد تو جدول خودش)
مبلغ
تشخیص (یا بده کار یا ب س تان کار)
حالا این چند تا فیلد تو همه ی اون 4 تا جدول ها هم هستن که داده های خودشون ثبته اما توی داکیومنت شماره آی دی ثبته
حالا من میخوام به جای این آی دی ها از اون جدول همون داده ها نمایش داده بشه
روند عملکردش باید این جور باشه که سلکت بیاد اول فیلد اول جدول داکیومنت(نوع سند) رو چک کنه ببینه نام کدوم جدول توشه و بعد فیلد دوم(شماره ثبت) که ببینه کدوم رکورد توی اون جدوله و بقیه فیلدهارو بر اسا فیلد و جدول اشاره شده نمایش بده
امیدوارم تونسته باشم سوالمو خوب بپرسم
تورو خدا کمکم کنید
خیلی لنگم
:گریه:

veniz2008
پنج شنبه 17 مرداد 1392, 14:30 عصر
آیا شماره ثبت در هر 4 جدول یکسان هست؟
مثلا در جدول اول شماره ثبت 1 داری و در جدول دوم هم باز هم شماره ثبت ها از 1 شروع میشن؟ (کلا منظورم اینه که آیا شماره ثبت ها (id رکوردها) در این 4 جدول میتونه تکراری باشه یا متمایز هستن؟)

programerinfonet
پنج شنبه 17 مرداد 1392, 14:33 عصر
بله می تونه تکراری باشه
هر جدول از یک شروع میشه دیگه اما خوب doctype یا همون نوع جدول فرق می کنه
مثلأ نمیشه برای جدول اشخاص دو تا 1 ثبت بشه

programerinfonet
پنج شنبه 17 مرداد 1392, 15:12 عصر
واسه من جواب نداد
تو همون بانکی که ضمیمه کردم تستش کنید ببینید اجرا میشه ؟

veniz2008
پنج شنبه 17 مرداد 1392, 15:19 عصر
واسه من جواب نداد
تو همون بانکی که ضمیمه کردم تستش کنید ببینید اجرا میشه ؟
من دیتابیس Access رو تحریم کردم!! (روی سیستم نسخه آفیس 2003 رو نصب دارم)
لطف کن جداولت رو در sql بساز و اینجا یک اسکریپت ازش بذار تا روی سیستم تست کنم.

programerinfonet
پنج شنبه 17 مرداد 1392, 16:19 عصر
من کوئری ها رو توی بانک اکسس اون چیزی که میخواستم نوشتم کلأ من میخواستم 6 تا کوئری رو یکی بنویسم نمی دونستم الان 6 تاشو جداجدا نوشتم با نام های فارسی
حالا ببینید چه طوری میشه این 6 تا کوئری که از جدول داکیومنت گرفتم رو به یک کوئری تبدیل کرد یا اینکه چه طوری میشه این شش تا کوئری رو توی یک دیتاگرید نمایش داد
قصد من یک جا بودن اینهاست
ببینید تو این بانک چی کارش میشه کرد

108760

roolinjax
پنج شنبه 17 مرداد 1392, 17:46 عصر
ببین دوست عزیز
من تو فرم اولم 4 تا جدول رو نمایش دادم که تو هر کدوم عملیات (دریافت چک ، پرداخت چک ، صدور چک و دریافت و پرداخت های نقدی) ثبت میشه و زمانی که تو هر یک از این جداول رکورد ثبت میشه یک نسخه هم از اون رکورد تو جدول داکیومنت که تو فرم 2 نمایش دادم ثبت میشه اما به جای داده ها id رکورد رو تو جدول داکیومنت ذخیره می کنم تا اگر روزی اون رکورد رو تو جدول خودش ویرایش کردم تو جدول داکیومنت هم در ظاهر اعمال بشه (تا اینجا حله ؟)

سلام
این چه روش طراحی جدوله ؟
وقتی 4 تا جدول با فیلدهای شبیه هم داری که فقط کارکردشون فرق داره (مواردی که توی پرانتز گفتی) به جای طراحی 4 جدول یه جدول با فیلدهای مذکور رو میسازی به اضافه ی یه فیلد که نوع عملیات رو مشخص میکنه (صدورچک و ...)
با این طراحی دیگه رکورد id با شماره تکراری هخم نخواهی داشت که همچین مشکلی برات پیش بیاد.

veniz2008
پنج شنبه 17 مرداد 1392, 18:15 عصر
ببینید تو این بانک چی کارش میشه کرد


اینو تست کن. به هر کدوم از جدولهات یه ستون مجازی اضافه کن (من اسم ستون رو گذاشتم a که داخل این ستون نام جدول به همراه رکوردهای اون جدول میاد.). الان میتونی inner join رو بر روی این جداول اعمال کنی (تمام جداولت دو فیلد مشترک دارند، ستون a با TableName مقایسه میشه و ستون id هر جدول هم با RecordID جدول نهایی) :
توجه داشته باشید که این ستون a موقع select اضافه میشه و اشتباها تصور نکنید که برید به جدولهاتون یه ستون جدید اضافه کنید.

select t1.userid,t1.a,t4.TableName from Table4 t4 inner join
(select 'a' = 'Table2', userid from Table2 union all select 'a' = 'Table3', userid from Table3 )t1
on t1.userid = t4.RecordID and t1.a = t4.TableName