PDA

View Full Version : سوال: مثال کاربردی dataGrid و دیتابیس



payman_xxp
یک شنبه 03 مرداد 1389, 12:58 عصر
سلام بدوستان و همراهان همیشگی
مسئله ای که دارم درمورد استفاده از گرید برای انجام تمام تغییرات روی دیتابیس هستش.
یه مثال روشن که توی نرم افزارهای حسابداری برخورد کردیم میگم:
-ثبت سند روزانه حسابداری
یه بخش داره که مشخصات کلی سند روزانه( شماره سند، تاریخ سند، جمع بدهکار و بستانکار سند، توضیحات سند) که هرکدوم رو داخل یه تکست باکس وارد میکنه.
یه بخش هم داره مربوط به ریز اسناد روزانه که میخام سطر به سطر داخل گرید دیده بشه، ادیت بشه، حذف بشه، اضافه بشه و با اعمال تغییرات جمع بدهکار بستانکار سند هم تغییر کنه.
سناریوی انجام اینکار برام پیچیدست که با زدن شماره سند :
اگه موجود بود تکست باکسها و گرید پر بشن و بالطبع میشه تو گرید ادیت، حذف یا اضافه کرد.
اگه موجود نبود شروع بکار ثبت جدید کنیم.
توضیحات دوستان همیشه منو کمک کرده هرچند داشتن مثال در ساده ترین حد ممکن مثل یه کتاب آدمو راهنمایی میکنه.
پیروز باشید.

حجتی نیا
یک شنبه 03 مرداد 1389, 16:03 عصر
اینکه خودش یخ برنامه کامله، شما شروع به نوشتن بکن تو جرئیات هرجا مشکل داشتی بگو..

payman_xxp
چهارشنبه 06 مرداد 1389, 14:53 عصر
اینکه خودش یخ برنامه کامله، شما شروع به نوشتن بکن تو جرئیات هرجا مشکل داشتی بگو..

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

salehvasaleh
چهارشنبه 06 مرداد 1389, 15:34 عصر
سلام دوستان
جناب حجتی نیا طاعت امر شد و تا اونجایی که میتونستم سعی کردم قالب اون چیزی که توی ذهنم هستش و پیاده کردم و ضمیمه کردم.
حین تکمیل این تاپیک سوالات دیگه ای هم خواهم پرسید تا به یک نمونه نسبتا کامل از کار با دیتابیس برسیم که بدرد تازه کاری مثل من بخوره.
با سپاس فراوان.
می شه بگید موقع add colume چه نوع تایپی رو انتخاب کردید که باعث شده قبل از اجرای پروژه نا ستونها قابل دیدن باشه. برای من این طور نیست که احتمالا تنظیماتش با تنظیمات شما یکی نیست. اگه می شه یک توضیحی بدید. ممنون
توی عکس منظورم معلومه.

http://www.img4up.com/images1/03512767447893341477.png

gerdioz
چهارشنبه 06 مرداد 1389, 15:45 عصر
بابا آبروی ما رو بردی که این چه سوالیه:عصبانی:

salehvasaleh
چهارشنبه 06 مرداد 1389, 15:48 عصر
بابا آبروی ما رو بردی که این چه سوالیه:عصبانی:
شرمنده فهمیدم. ببخشی سوال خوبی نبود. :خجالت:

payman_xxp
پنج شنبه 07 مرداد 1389, 07:55 صبح
سلام دوستان

اگه ممکنه راهنمایی کنید تا کم کم کامل کنیم این مثال کاربردی رو ویا اگه مثالهایی دارید ارائه کنید تا تاپیک به جواب برسه.

پیروز باشید.

حجتی نیا
پنج شنبه 07 مرداد 1389, 08:29 صبح
یه بخش هم داره مربوط به ریز اسناد روزانه که میخام سطر به سطر داخل گرید دیده بشه
به ازای هرسند چندین ریز اسناد وجود داره ؟؟

payman_xxp
پنج شنبه 07 مرداد 1389, 11:30 صبح
به ازای هرسند چندین ریز اسناد وجود داره ؟؟

بله به اینصورت هستش که ما با ازای هر روز کاری یک شماره سند داریم و در این روز میتونیم پرداخت داشته باشیم، دریافت داشته باشیم، خرید، فروش و ...که بصورت ریز سند داخل گرید ثبت میشه.

حجتی نیا
پنج شنبه 07 مرداد 1389, 11:59 صبح
شما میتونی دوتاجدول داشته باشی .. (سند - ریز سند)
سند (شماره سند،تاریخ،شرح،بستانکاری،ب دهکاری)
ریز سند (شماره سند،کد ریزسند،....)
یعنی به ازای هر سند که در جدول اول ذخیره میشه،چندین ریز سند میتونی در جدول دوم داشته باشی
تو همون تکس باکس شماره سند ابتدا شماره رو وارد میکنی و یه کلید جستجو میتونی بزاری که بره تو جدول اول سرچ میکنه ..اگه بود اطلاعات رو از هردو جدول میگیره و به تکس باکس و گرید بایند میکنه و بعدش مثلا کلید بروز رسانی فعال بشه
اگه تو جدول اول نبود که میتونه یه پیام بده و بعدش اطلاعات رو واردکنی

کار پیچیده ای نیست،شما وارد کدنویسی بشو هرجا مشکل داشتی بگو

javad_r_85
جمعه 08 مرداد 1389, 09:37 صبح
سلام بدوستان و همراهان همیشگی
مسئله ای که دارم درمورد استفاده از گرید برای انجام تمام تغییرات روی دیتابیس هستش.
یه مثال روشن که توی نرم افزارهای حسابداری برخورد کردیم میگم:
-ثبت سند روزانه حسابداری
یه بخش داره که مشخصات کلی سند روزانه( شماره سند، تاریخ سند، جمع بدهکار و بستانکار سند، توضیحات سند) که هرکدوم رو داخل یه تکست باکس وارد میکنه.
یه بخش هم داره مربوط به ریز اسناد روزانه که میخام سطر به سطر داخل گرید دیده بشه، ادیت بشه، حذف بشه، اضافه بشه و با اعمال تغییرات جمع بدهکار بستانکار سند هم تغییر کنه.
سناریوی انجام اینکار برام پیچیدست که با زدن شماره سند :
اگه موجود بود تکست باکسها و گرید پر بشن و بالطبع میشه تو گرید ادیت، حذف یا اضافه کرد.
اگه موجود نبود شروع بکار ثبت جدید کنیم.
توضیحات دوستان همیشه منو کمک کرده هرچند داشتن مثال در ساده ترین حد ممکن مثل یه کتاب آدمو راهنمایی میکنه.
پیروز باشید.


دوست عزیز شما بهتر است هنگام طراحی جدول یه کلید اصلی تعریف کنید مثلا شماره سند سپس برای پر کردن جدول با دستور insert مقادیر را از تکست باکسها به جدول انتقال دهید.مسلم است که چون کلید اصلی تعریف کردید اگر شماره سند یکی بود پیغام خطا میدهد که شما با استفاده از بلوک try . catch این استثنا را مدیریت میکنید و به کاربر میگویید که یه شماره دیگر وارد کند برای ادیت و حذف نیز همین کارو میکنید شماره سند را در یافت میکنید و با توجه به آن ادیت یا حذف می کنید.

payman_xxp
شنبه 09 مرداد 1389, 07:38 صبح
سلام دوستان

من دیتابیس اینکارو طراحی کردم ( در پوشه acc\bin\Debug)
میخام اگه کار اصولی نیست راهنمایی کنید تغییر بدم تا کارو از اول درست انجام بدم و بعد وارد محیط کدنویسی بشم.

پیروز باشید.

payman_xxp
شنبه 09 مرداد 1389, 15:22 عصر
اینم دیتابیس برنامه بصورت جدا با یه سری اطلاعات ساده که بشه بعداز ارتباط داخل برنامه دیتارو دید.
آیا میشه کانکشن استرینگ فقط یکبار تعریف بشه؟ یعنی نمیخام واسه هر عملیاتی مثل حذف، اضافه یا ادیت یه کانکشن استرینگ تعریف کنم. میخام کاملا کلاس بندی شده کار کنم.
امکانش هست..؟

حجتی نیا
شنبه 09 مرداد 1389, 17:39 عصر
اینم دیتابیس برنامه بصورت جدا با یه سری اطلاعات ساده که بشه بعداز ارتباط داخل برنامه دیتارو دید.
آیا میشه کانکشن استرینگ فقط یکبار تعریف بشه؟ یعنی نمیخام واسه هر عملیاتی مثل حذف، اضافه یا ادیت یه کانکشن استرینگ تعریف کنم. میخام کاملا کلاس بندی شده کار کنم.
امکانش هست..؟
یه کلاس میتونی تعریف کنی که توش کانکشن رو یبار تعریف و مقدار اونو برگردونی،توبرنامه هم با فراخوانی اون کلاس،کانکشن رو بدست میاری

payman_xxp
دوشنبه 11 مرداد 1389, 08:31 صبح
یه کلاس میتونی تعریف کنی که توش کانکشن رو یبار تعریف و مقدار اونو برگردونی،توبرنامه هم با فراخوانی اون کلاس،کانکشن رو بدست میاری

سلام دوستان

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

لطفا اگه ممکنه روی مثال ارائه شده کدنویسی کنید یا اگه نمونه کد دارید لطف کنید.

پیروز باشید.

حجتی نیا
دوشنبه 11 مرداد 1389, 09:39 صبح
بطور مثال یه کلاس جدید به برنامه اضافه میکنین و اینا داخلش مینویسین :

class set_connectionstring
{
private string connectionstring;
public string setconnectstring()
{
connectionstring = @"server=.\;database=sodour;integrated security=true";
return connectionstring;
}
}
در برنامتون هرجا خواستید کانکشن بگیرید:

set_connectionstring set=new set_connectionstring();
string connectstr = set.setconnectstring();

payman_xxp
دوشنبه 18 مرداد 1389, 11:26 صبح
با راهنمایی دوستان بالاخره تونستم بانک اکسس رو با اعمال شرط شماره سند توی دیتاگرید نشون بدم( هورا :چشمک:)
ولی نمیدونم چجوری تکست باکس تاریخ سند و توضیحات سند رو از دیتابیس پرکنم... :ناراحت:
بعدش میخام حذف، اضافه و ادیت رو بهش اضافه کنم.... :متفکر:

با راهنمایی شما دوستان دلگرمتر میشم :تشویق:

payman_xxp
چهارشنبه 20 مرداد 1389, 08:59 صبح
سلام دوستان
توی پست قبلی برنامه هستش، دیتابیس به گریدویو وصل شده و کار میکنه.
حالا میخام مثلا فیلد تاریخ از دیتابیس در یک تکست باکس دیده بشه.

payman_xxp
یک شنبه 24 مرداد 1389, 08:53 صبح
سلام دوستان
بالاخره بعداز کلی کلنجار دیتا داخل گرید اومد، جمع گرید اومد و تکست باکس هم به دیتا بایند شد

سوال
اگه به عکس ضمیمه نگاه کنید برای پرکردن تکست باکس تاریخ و توضیحات اونا رو داخل کانکشن استرینگ صدا زدم( های لایت سبز) و با بایند کرن تونستم تکست باکس رو مقدار بدم ولی، ولی

ولی وقتی گرید رو نگاه کردم دیدم 2تا ستون تاریخ و توضیحات اضافه شده(های لایت قرمز)!!!؟؟؟
آیا روشم اشتباهه؟ یا چیزی یادم رفته؟

حجتی نیا
یک شنبه 24 مرداد 1389, 10:11 صبح
سلام دوستان
بالاخره بعداز کلی کلنجار دیتا داخل گرید اومد، جمع گرید اومد و تکست باکس هم به دیتا بایند شد

سوال
اگه به عکس ضمیمه نگاه کنید برای پرکردن تکست باکس تاریخ و توضیحات اونا رو داخل کانکشن استرینگ صدا زدم( های لایت سبز) و با بایند کرن تونستم تکست باکس رو مقدار بدم ولی، ولی

ولی وقتی گرید رو نگاه کردم دیدم 2تا ستون تاریخ و توضیحات اضافه شده(های لایت قرمز)!!!؟؟؟
آیا روشم اشتباهه؟ یا چیزی یادم رفته؟
اشکال : تو دستور select شما 7تا ستون انتخاب میکنین در حالیکه در گرید میخواین 5تا از اونارو داشته باشین و 2تا رو به تکس باکس بایند کنین ..
1) میتونین با دوبار نوشتن select ،یکی با انتخاب 5تای اول و بایند به گرید - دومی با انتخاب 2تا ستون و بایند به تکس باکس ها
2) یه دیتاست با 5ستون ایجاد کنین و با همین دستور select اطلاعات رو انتخاب و واسه بایند به گرید از اون دیتاست استفاده کنین .. (از 7تا ستون انتخابی فقط 5تا وارد دیتاست میشه) بقیه کد هم همون باشه ..
.
.