PDA

View Full Version : آموزش: سورس کامل یک کتابخانه برای کتابهای الکترونیکی



ali_autumnal
چهارشنبه 11 آذر 1388, 22:35 عصر
باسلام

یه نرم افزاری نوشتم امیدوارم که موجب رضایت دوستان قرار بگیره.

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

1- کتاب های الکترونیکی زیادی تو هارد دارند و میخوان مدیریت خوبی روی اونها بکنند.
از قبیل : جستجو ، حذف، ویرایش و...
کلیه فرمت ها پشتیبانی میشود. بشرطی که نرم افزار مورد نیاز اون فرمت تو سیستم نصب شده باشد.

2- واسه دوستانی که مثل خودم مبتدی هستن و میخوان:

الف) اتصال به دیتابیس اکسس رو یادبگیرن
ب) insert , delete ,edit ,search رو یادبگیرن
ج) چگونگی ریختن اطلاعات تو دیتاگرید رو یادبگیرن
د) ذخیره کلیه پیغام های خطا در فایلی بنام Error
و....

با دابل کلیک کردن روی دیتاگرید ، دیتاگرید بزرگتر شده و نمایش اطلاعات در حالت بزرگ صورت میگیرد. و دوباره دابل کلیک کنید به حالت اولیه برمیگردد.

امیدوارم حسابی انتقاد کنید.


لینک دانلود سورس برنامه
موفق و موید باشید.

sorooshk
چهارشنبه 11 آذر 1388, 22:53 عصر
سلام
بهتر بود سايز برنامه را اجازه ميدادي كه قابليت بزرگ شدن داشته باشه.
مثلا الان وقتي روي Maximize كليك كني اصلا صفحه بزرگ نميشه و اطلاعات Data Grid داراي اسكرول افقي ميشه كه يكم جالب نيست.
اگر ميخواي كه برنامه بزرگ نشه بهتره كه دكمه Maximize را كلا غيرفعال كني كه نشه روش كليك كرد.:چشمک:

ali_autumnal
چهارشنبه 11 آذر 1388, 22:58 عصر
سلام
بهتر بود سايز برنامه را اجازه ميدادي كه قابليت بزرگ شدن داشته باشه.
مثلا الان وقتي روي Maximize كليك كني اصلا صفحه بزرگ نميشه و اطلاعات Data Grid داراي اسكرول افقي ميشه كه يكم جالب نيست.
اگر ميخواي كه برنامه بزرگ نشه بهتره كه دكمه Maximize را كلا غيرفعال كني كه نشه روش كليك كرد.:چشمک:



دوست عزیز ممنون از پیشنهادتون.

اما اگه روی دیتا گرید دوبار کلیک کنید دیتا گرید بزرگ میشه. و دوبار دیگه کلیک کنید به حالت اول برمیگرده.

sorooshk
چهارشنبه 11 آذر 1388, 23:03 عصر
سلام مجدد
من الان دابل كليك كردم فقط صفحه پاييني حذف ميشه و بعد دوباره اضافه ميشه.
منظور من اسكرول بار افقي هست نه عمودي
الان در حالتي كه حتي ديتا گريد خالي هست باز هم نوار اسكرول افقي هم ديده ميشه.
به نظر من اگر به جاي ديتا گريد از Binding براي يك سري TextBox كه به صورت Disabled هستند استفاده مي كرديد بهتر بود. حداقل در چنين حالتي كاربر مجبور نيست كه اسكرول را انجام بده و فقط از برنامه بدون دردسر استفاده مي كنه.

ali_autumnal
چهارشنبه 11 آذر 1388, 23:14 عصر
سلام مجدد
من الان دابل كليك كردم فقط صفحه پاييني حذف ميشه و بعد دوباره اضافه ميشه.
منظور من اسكرول بار افقي هست نه عمودي
الان در حالتي كه حتي ديتا گريد خالي هست باز هم نوار اسكرول افقي هم ديده ميشه.
به نظر من اگر به جاي ديتا گريد از Binding براي يك سري TextBox كه به صورت Disabled هستند استفاده مي كرديد بهتر بود. حداقل در چنين حالتي كاربر مجبور نيست كه اسكرول را انجام بده و فقط از برنامه بدون دردسر استفاده مي كنه.


پیشنهاد شما درسته اما باز واسه این هم کاری انجام دادم.

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

sorooshk
چهارشنبه 11 آذر 1388, 23:21 عصر
بله. اين هم راه حل جالبي هست. درسته.
راستي اي كاش توي ديتا گريد تاريخ را با علامت / جدا ميكرديد.
مثلا الان تاريخ توي ديتا گريد اينجوري هست: 880911 كه اگر اينجوري بود بهتر بود: 88/09/11
راستي ميبخشيد من اين همه ايراد ميگيرما.

من خودم تازه كار هستم و خيلي دوست دارم سي شارپ ياد بگيرم الان هم دارم هم كلاس سي شارپ ميرم هم ASP.Net برام مفيد بوده و اميدوارم بتونم در اين سايت هم محيط آموزشي خوبي را با هم ديگر تجربه كنيم.

ali_autumnal
چهارشنبه 11 آذر 1388, 23:33 عصر
بله. اين هم راه حل جالبي هست. درسته.
راستي اي كاش توي ديتا گريد تاريخ را با علامت / جدا ميكرديد.
مثلا الان تاريخ توي ديتا گريد اينجوري هست: 880911 كه اگر اينجوري بود بهتر بود: 88/09/11
راستي ميبخشيد من اين همه ايراد ميگيرما.

من خودم تازه كار هستم و خيلي دوست دارم سي شارپ ياد بگيرم الان هم دارم هم كلاس سي شارپ ميرم هم ASP.NET برام مفيد بوده و اميدوارم بتونم در اين سايت هم محيط آموزشي خوبي را با هم ديگر تجربه كنيم.


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

خواهش میکنم نظرات دوستان همیشه مفید بوده و خواهد بود.

همچنین موفق و موید باشید.

ali_autumnal
پنج شنبه 12 آذر 1388, 16:32 عصر
کسی در مورد سورس این برنامه نظری نمیخواد بده؟:متفکر:

روش کد نویسی خوبه یا نه؟

کدها مبتدی گونه هستند یا اینکه....


از دوستان حرفه ای خواهشمندم نظرات خود رو بیان کنند.

Power_Project
پنج شنبه 12 آذر 1388, 23:22 عصر
سلام
متشکرم از برنامه مفیدتون.
اگه امکان داره در مورد این یه توضیحی بدهید


ذخیره کلیه پیغام های خطا در فایلی بنام Error


من فایلی ندیدم؟؟

ali_autumnal
پنج شنبه 12 آذر 1388, 23:26 عصر
سلام
متشکرم از برنامه مفیدتون.
اگه امکان داره در مورد این یه توضیحی بدهید




من فایلی ندیدم؟؟


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

این فایل در اون لحظه ایجاد خواهد شد و پیغام خطا با ثبت شماره خطا تاریخ خطای ایجاد شده و زمان خطا در آن ذخیره خواهد شد.

behnam25214
جمعه 13 آذر 1388, 00:09 صبح
برنامه خوب و جالبی نوشتی بدرد بخور هم هست ولی یه مشکل خیلی کوچیک هم داره اونم اینه که وقتی از
پنل INSERT BOOKبه پنل SEARCHمیری ،چندتا radioButton هست به طور پیش فرض Name انتخاب شده ولی
txtbooknameSearch غیر فعال است. باید یک radioButton دیگه رو انتخاب کنی و بعد radioButton نام رو انتخاب کنی که فعال بشه.

اگه این قسمتم درست کنی بهتر میشه

ali_autumnal
جمعه 13 آذر 1388, 01:43 صبح
برنامه خوب و جالبی نوشتی بدرد بخور هم هست ولی یه مشکل خیلی کوچیک هم داره اونم اینه که وقتی از
پنل INSERT BOOKبه پنل SEARCHمیری ،چندتا radioButton هست به طور پیش فرض Name انتخاب شده ولی
txtbooknameSearch غیر فعال است. باید یک radioButton دیگه رو انتخاب کنی و بعد radioButton نام رو انتخاب کنی که فعال بشه.

اگه این قسمتم درست کنی بهتر میشه


متشکر از یادآوری تون.
مشکلی نبود که حل نشه! کد مورد نظر رو نوشتم.

اگه اجازه بدید یه تغییرات دیگه هم بدم بعد آپلود کنم. میخوام وقتی فرم منیمم شد تو حافظه مقیم بشه و آیکون مورد نظرش تو Taskbar دیده شه.

کد اون رو هم نوشتم فقط یه مشکل کوچیک داره اونم رفع شد کامل آپلود میکنم.
موفق باشید.

ali_autumnal
جمعه 13 آذر 1388, 17:34 عصر
سلام

تغییراتی که گفته بودم اعمال شد و الان آپلود کردم تا اگه دوست داشتید دانلود کنید.

این تغییرات شامل:

1- مقیم شدن برنامه در حافظه
2- و ایرادهایی که دوستان گرفته بودن.

موفق باشید.

Amir Oveisi
جمعه 13 آذر 1388, 19:27 عصر
با سلام
خسته نباشید.

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

موفق باشید

ali_autumnal
جمعه 13 آذر 1388, 21:49 عصر
با سلام
خسته نباشید.

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

موفق باشید


باسلام
شما هم خسته نباشید.
متشکرم از پیشنهادتون. حتما در پروژه های بدی به این نکته عمل میکنم.
موفق باشید.

ali_autumnal
دوشنبه 17 اسفند 1388, 10:31 صبح
با تغییرات جدیدی که دادم دانلود کنید.

SMRAH1
دوشنبه 17 اسفند 1388, 10:54 صبح
سلام
از کجا دانلود کنیم؟!!!!
(در مورد کد پست شماره 13، تاریخ فایل های داخل سورس ماله اواخر آذر بود!)
موفق باشید

Yasersadegh
دوشنبه 17 اسفند 1388, 11:39 صبح
سلام به همه دوستان گرامي
دوست عزيز برنامه نسبتا خوبيه!! ولي خوب همونطوري كه دوستان اشاره كردن اشكالاتي داره، كه منم به چندتايي برخوردم كه عرض مي كنم!
يكمي در بخش جستجو و ويرايش مديريت تون برروي تاريخ و تكست باكسها ضعيفه! كه در عكس زير اروري رو كه مشاهده مي كنيد نتيجه همين ضعفه!!
و همچنين در ديتابيستون من نفهميدم برايه چي فيلد رديف رو قرار داديد!!:متعجب: نيازي نيست كه فيلد رديف در يتابيس باشه!!(از ديد مهندسي نرم افزار پذيرفته نيست!):اشتباه:
همچنين حكمت وجود تيبل دوم در ديتابيس نيز نامشخص است!!؟(از ديد مهندسي نرم افزار دليل قانع كننده اي پيدا نشد!):اشتباه:

موفق باشيد:چشمک:

ali_autumnal
دوشنبه 17 اسفند 1388, 22:08 عصر
از کجا دانلود کنیم؟!!!!

واقعیت اش از صبح تا الان یه مشکلی پیش اومده، نمیتونم آپ لود کنم!


يكمي در بخش جستجو و ويرايش مديريت تون برروي تاريخ و تكست باكسها ضعيفه! كه در عكس زير اروري رو كه مشاهده مي كنيد نتيجه همين ضعفه!!

بله کاملا درست فرمودید.
قضیه برمیگرده به اون زمانی که یکی از دوستان از من خواستند همچین چیزی درست کنم در زمان خیلی کوتاه!! من ام مجبور شدم سریع اینو آماده کنم. در نسخه جدید این ایرادات رفع خواهند شد.


همچنين حكمت وجود تيبل دوم در ديتابيس نيز نامشخص است!!؟

حکمت تیبل دوم اینه که: قراره شماره آخرین رکوردی که تو دیتابیس ذخیره شده رو نگرداره واسه ثبت رکوردهای بعدی. در اصطلاح یک رکوردی خواهد بود که همواره کد تولید شده در مراحل گذشته رو نگهمیداره.

متشکرم از همه دوستانی که نقد و انتقاد میکنند.
موفق باشید.

FastCode
دوشنبه 17 اسفند 1388, 23:24 عصر
واقعیت اش از صبح تا الان یه مشکلی پیش اومده، نمیتونم آپ لود کنم!



بله کاملا درست فرمودید.
قضیه برمیگرده به اون زمانی که یکی از دوستان از من خواستند همچین چیزی درست کنم در زمان خیلی کوتاه!! من ام مجبور شدم سریع اینو آماده کنم. در نسخه جدید این ایرادات رفع خواهند شد.



حکمت تیبل دوم اینه که: قراره شماره آخرین رکوردی که تو دیتابیس ذخیره شده رو نگرداره واسه ثبت رکوردهای بعدی. در اصطلاح یک رکوردی خواهد بود که همواره کد تولید شده در مراحل گذشته رو نگهمیداره.

متشکرم از همه دوستانی که نقد و انتقاد میکنند.
موفق باشید.

چرا از MAX یا NEWID استفاده نمیکنید؟

ali_autumnal
سه شنبه 18 اسفند 1388, 00:10 صبح
چرا از MAX یا NEWID استفاده نمیکنید؟

اطلاعاتی در این زمینه نداشتم. اگه شما اطلاعاتی دارید بی زحمت ارائه کنید تا استفاده کنم.
متشکر

FastCode
سه شنبه 18 اسفند 1388, 00:55 صبح
اطلاعاتی در این زمینه نداشتم. اگه شما اطلاعاتی دارید بی زحمت ارائه کنید تا استفاده کنم.
متشکر

2 .با استفاده از MAX میتونید بیشترین مقدار یه ستون عددی رو در sql بگیرید و +1 کنید و استفاده کنید.
3 .و یا با NewID خیلی ساده یه GUID از sql بگیرید و استفاده کنید.
1 .و یا مثلا" از Identity استفادده کنید.
\/
||
درجه سختی