PDA

View Full Version : آموزش: برنامه ای برای آموزش کار با پایگاه داده (login /چهار عمل بر روی DB/استفاده از عکس/Crystal report)



sara.f
دوشنبه 30 شهریور 1388, 20:12 عصر
سلام به همه دوستانم. :لبخندساده:
خیلی وقته می خواستم پروژه ای را در اینجا قرار بدم که بالاخره امروز محقق شد.
در این مدتی که عضو این سایت شدم،شاهد این بودم که خیلی از اعضا سوالاتی مشابه یکدیگر دارند و همگی دنبال نمونه کد وبرنامه هستن ولی بیشتر مواقع برنامه ای که بتونه تمام سوالاتشون را پاسخ بده پیدا نمی کردند.من در بسیاری از قسمت های این برنامه از اطلاعات بچه های همین سایت استفاده کردم. :لبخندساده:





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

ورود / حذف / ویرایش / جستجوی اطلاعات
ذخیره عکس در data base/ و نمایش عکس در picture box و data grid view
گزارش گیری کلی / و بر اساس یک فیلد خاص در crystal report
نمایش عکس در crystal
ارسال پارامتر به crystal
وجود صفحه login/ برنامه دو فرمه
و نکات کوچک دیگر
این برنامه را به دو دلیل اینجا میذارم:
دوستانم از این برنامه استفاده کنند و جواب بسیاری از سوالاتشون را که در اینجا مطرح میشه را دریافت کنند و مجبور نباشند که مثل من برای پیدا کردن جواباشون از این تاپیک به اون تاپیک برند، البته می دونم که ممکنه راه حل های بهتری هم وجود داشته باشه،پس دلیل دوم اینه که:
این برنامه شاید از دید بسیاری از دوستانم حرفه ای نیست، و شاید خیلی اشکالات داشته باشه که دوست دارم همه نظر بدن و من واقعا از اینکه بتونم این برنامه را بهبود بدم خوشحال میشم.
باید اضافه کنم که برنامه تحت نرم افزار visual studio 2008 نوشته شده و پایگاه داده مورد استفاده SQL Server 2008 هست.

بچه ها نظر بدید، لطفا.

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

atryad
دوشنبه 30 شهریور 1388, 20:22 عصر
دوست عزیز دیتابیسش کجاست

sara.f
دوشنبه 30 شهریور 1388, 20:26 عصر
ای وای بچه ها یادم رفت data base را بذارم.:لبخندساده:
این فایل back up هست که می تونید در SQL آن را restore کنید.
نظر بدیدا.

اَرژنگ
دوشنبه 30 شهریور 1388, 20:31 عصر
یک سوال، چرا استفاده از کریستال؟ چرا از Microsoft ReportViwer استفاده نکردید؟ (سوال است نه انتقاد! ترجیح شخصی من این است که مقدار وابستگی‌ها را تا جایه ممکن کم نگه دارم، ولی در مورد مقایسه کریستال با مایکروسافت ریپورت ویو چیزی نمیدانم).
(وقتی که میگم "چرا" سوال دلیلی است، نه اینکه بخوام کمبودی را برسانم)

sara.f
دوشنبه 30 شهریور 1388, 20:37 عصر
یک سوال، چرا استفاده از کریستال؟ چرا از Microsoft ReportViwer استفاده نکردید؟ (سوال است نه انتقاد! ترجیح شخصی من این است که مقدار وابستگی‌ها را تا جایه ممکن کم نگه دارم، ولی در مورد مقایسه کریستال با مایکروسافت ریپورت ویو چیزی نمیدانم).
(وقتی که میگم "چرا" سوال دلیلی است، نه اینکه بخوام کمبودی را برسانم)
سلام،آقای ارژنگ.

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

alireza_tavakol
سه شنبه 31 شهریور 1388, 10:56 صبح
سلام / خسته نباشید و دستتون درد نکنه.:تشویق:

چون من خیلی حرفه ای نیستم وقتی کد شما رو می خوندم چند تا سوال واسم پیش اومد

1) چرا توی فرم "صفحه ورود" متد IsValidLogin و کلیه عملیات اعتبار سنجی رو یک جا انجام ندادین؟
-این طوری که من شنیدم یکی از اصول برنامه نویسی شی گرا استقلال هر کلاس است

2)چرا در کلاس Program در شرط حلقه do از عملگر بیتی & استفاده کرده اید در صورتی که بهینه تر بود از عملگر منطقی && استفاده میکردید؟

3) به نظر شما استفاده از tabControl به این شکل کار درستی است؟

4)به نظر شما این کار درستی است که کلاس Form2 متشکل از 3 پروپرتی باشه (6 خط کد) در حالی که کلاس Form1 متشکل از 1397 خط کد داشته باشه؟
-اگه هدف شما آموزش به مبتدیانی مثل من بوده که من اینقدر سردرگم شدم که تغریبا هیچی نفهمیدم و اگر هم شما به صورت حرفه ای یا صنعتی کد نوشین باز توی پشتیبانی maintenance به مشکل بر می خورین!

5)در مورد رنگ بندی و ظاهر برنامه اظهار نظر نمی کنم چون احتمالا" می خواستین هر چه سریع تر پروژه رو بسازید و upload کنید

در ضمن پیشنهاد می کنم عنوان تاپیک رو اصلاح کنید چون خیلی نامفهوم و کلی است

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

امید وارم اگه روزی من به درجه ای رسیدم که پروژه ای رو upload کردم بقیه دوستان صادقانه نظراتشون رو واسم ثبت کنند

با تشکر از زحمات همه دوستان مخصوصا sara.f

Amir Oveisi
سه شنبه 31 شهریور 1388, 12:25 عصر
با عرض خسته نباشید و تشکر از شما

من فرصت نکردم خیلی بررسی کنم و سورس رو ندیدم اما مشکلی که مشاهده شد این بود که از Exception Handling که بخش بسیار مهمی در یک نرم افزار محسوب میشه استفاده نشده بود تو برنامه و از اون نظر که این برنامه هدف آموزشی داره یک نقطه ضعف براش محسوب میشه.

ممنون و موفق باشید

sara.f
سه شنبه 31 شهریور 1388, 13:28 عصر
با عرض خسته نباشید و تشکر از شما

من فرصت نکردم خیلی بررسی کنم و سورس رو ندیدم اما مشکلی که مشاهده شد این بود که از Exception Handling که بخش بسیار مهمی در یک نرم افزار محسوب میشه استفاده نشده بود تو برنامه و از اون نظر که این برنامه هدف آموزشی داره یک نقطه ضعف براش محسوب میشه.

ممنون و موفق باشید
سلام
خوب این exception handling که میگید چی هست؟

Amir Oveisi
سه شنبه 31 شهریور 1388, 13:47 عصر
در برنامه دو نوع خطا داریم : خطاهای زمان کامپایل و خطاهای زمان اجرا
خطاهای زمان کامپایل مثل همه خطاهایی که موقع کامپایل کردن توسط کامپایلر گرفته میشن و ما از وجود اونا مطلع میشیم و رفعشون میکنیم.
خطاهای زمان اجرا اما توسط کامپایلر قابل تشخیص نیستند، مثلا فرض کنید شما تو کد یک عمل تقسیم انجام دادید. از نظر کامپایلر این کد کاملا درست هست و خطایی نداره اما زمانی که برنامه در حال اجراست ممکنه یه موقعی مخرج کسر شما صفر بشه و تقسیم بر صفر اتفاق بیفته که یک عمل تعریف نشده هست و در نتیجه برنامه شما crash خواهد کرد. این اتفاق یک Run-time Error یا همون Exception نامیده میشه.
برای جلوگیری از crash کردن برنامه در هنگام چنین Exception هایی از روشی استفاده میشه که در اصطلاح Exception Handling گفته میشه.
برای اطلاعات بیشتر در این مورد به لینک زیر سری بزنید:
http://msdn.microsoft.com/en-us/library/ms173160.aspx

موفق باشید

sara.f
سه شنبه 31 شهریور 1388, 15:01 عصر
در برنامه دو نوع خطا داریم : خطاهای زمان کامپایل و خطاهای زمان اجرا
خطاهای زمان کامپایل مثل همه خطاهایی که موقع کامپایل کردن توسط کامپایلر گرفته میشن و ما از وجود اونا مطلع میشیم و رفعشون میکنیم.
خطاهای زمان اجرا اما توسط کامپایلر قابل تشخیص نیستند، مثلا فرض کنید شما تو کد یک عمل تقسیم انجام دادید. از نظر کامپایلر این کد کاملا درست هست و خطایی نداره اما زمانی که برنامه در حال اجراست ممکنه یه موقعی مخرج کسر شما صفر بشه و تقسیم بر صفر اتفاق بیفته که یک عمل تعریف نشده هست و در نتیجه برنامه شما crash خواهد کرد. این اتفاق یک Run-time Error یا همون Exception نامیده میشه.
برای جلوگیری از crash کردن برنامه در هنگام چنین Exception هایی از روشی استفاده میشه که در اصطلاح Exception Handling گفته میشه.
برای اطلاعات بیشتر در این مورد به لینک زیر سری بزنید:
http://msdn.microsoft.com/en-us/library/ms173160.aspx

موفق باشید
مرسی از راهنماییتون.
خوب این exception handling که گفتید که همون استفاده از try,catch هست
منم توی برنامم استفاده کردم که!!!!!!!!!!!!!

Amir Oveisi
سه شنبه 31 شهریور 1388, 15:31 عصر
خوب شايد به درستي استفاده نكردين چون اگر فايل ديتابيس نباشه برنامه كرش ميكنه بدون اينكه پيغامي در مورد خطا بده.

sara.f
سه شنبه 31 شهریور 1388, 15:43 عصر
خوب شايد به درستي استفاده نكردين چون اگر فايل ديتابيس نباشه برنامه كرش ميكنه بدون اينكه پيغامي در مورد خطا بده.
شما برنامه را اجرا کردید؟!
اگه db نباشه که پیغام خطا میده
crash هم نمیکنه!!!!!

Amir Oveisi
سه شنبه 31 شهریور 1388, 15:51 عصر
بله
با نام كاربري Admin و كلمه عبور 1234
اما فرم بعدي رو نشون نميده ، پيغام هم نشون نميده وپنجره send error ويندوز رو مياره

sara.f
سه شنبه 31 شهریور 1388, 16:14 عصر
بله
با نام كاربري Admin و كلمه عبور 1234
اما فرم بعدي رو نشون نميده ، پيغام هم نشون نميده وپنجره send error ويندوز رو مياره
خیلی واسم عجیبه!!!!!!!!!!!!!:متفکر:
چون من حتی الان db را delete کردم ولی وقتی فرم اصلی باز میشه پیغام خطایی مبنی بر اینکه نمی تونه db را پیدا کنه را داد.
دوستان دیگر هم مشکل آقای برمودا را دارند؟!!!!

sara.f
سه شنبه 31 شهریور 1388, 16:48 عصر
سلام دوست عزیز.
ممنونم که نظراتت را بیان کردی.


1) چرا توی فرم "صفحه ورود" متد IsValidLogin و کلیه عملیات اعتبار سنجی رو یک جا انجام ندادین؟

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


2)چرا در کلاس Program در شرط حلقه do از عملگر بیتی & استفاده کرده اید در صورتی که بهینه تر بود از عملگر منطقی && استفاده میکردید؟

از آنجا که در C#‎‎‎‎ برخلاف جاوا هر عملوند منطقی یک معادل عددی داره، پس استفاده از عملگر بیتی در اینجا مشکلی ایجاد نمی کنه، ولی استفاده از یک عملگر منطقی برای محاسبه عملیات عملوندهای منطقی، مناسب تر هست. تصحیحش می کنم.


3) به نظر شما استفاده از tabControl به این شکل کار درستی است؟
منظورتون چه شکلی هست؟
خوب من در این برنامه از tabcontrol استفاده کردم ولی در جواب سوال چهارمتون باید بگم


4)به نظر شما این کار درستی است که کلاس Form2 متشکل از 3 پروپرتی باشه (6 خط کد) در حالی که کلاس Form1 متشکل از 1397 خط کد داشته باشه؟

این را درست می گید،استفاده از menu ها و form های بیشتر فکر می کنم، فهم برنامه را بهتر کنه، سعی می کنم همین برنامه را با form های بیشتری بنویسم.


5)در مورد رنگ بندی و ظاهر برنامه اظهار نظر نمی کنم چون احتمالا" می خواستین هر چه سریع تر پروژه رو بسازید و upload کنید
در مورد رنگش هم نظر بدید لطفا.


در ضمن پیشنهاد می کنم عنوان تاپیک رو اصلاح کنید چون خیلی نامفهوم و کلی است
به نظر شما چه عنوانی انتخاب کنم؟

ممنونم از حسن توجهتون.

mahdi_7610
سه شنبه 31 شهریور 1388, 17:40 عصر
خیلی واسم عجیبه!!!!!!!!!!!!!:متفکر:
چون من حتی الان db را delete کردم ولی وقتی فرم اصلی باز میشه پیغام خطایی مبنی بر اینکه نمی تونه db را پیدا کنه را داد.
دوستان دیگر هم مشکل آقای برمودا را دارند؟!!!!
سلام

راستش من چون هنوز از 2005 استفاده میکنم و متاسفانه نتونستم محیط اصلی این برنامه را مشاهده کنم .

دوستمون bermooda درست میگین . exception handling از قسمتهای مهم برنامه محسوب می شه .

این طور که مشخصه شما عکس العمل خودتون را در صورت نبود دیتابیس نشون ندادین .

تا حد ممکن باید جلوی باگهای احتمالی برنامه را گرفت و به هیچ وجه نباید اجازه داد که خطای send error ویندوز به کاربر نشون داده بشه . چون کاربر متوجه میشه که ما فکری به حال این خطای احتمالی نکردیم .

من هم وقتی هم در صورت وجود نداشتن دیتابیس با خطاری send error ویندوز مواجه میشم .

چون من نتونستم به تمامی قسمتهای برنامه دسترسی داشته باشم نمیتونم نظر دیگه ای بدم .

مرسی بابت زحمتی که کشیده اید .

موفق باشی

sara.f
سه شنبه 31 شهریور 1388, 17:59 عصر
این طور که مشخصه شما عکس العمل خودتون را در صورت نبود دیتابیس نشون ندادین .


سلام.
ببخشید من متوجه نشدم.
منظورتون چیه که عکس العمل نشون ندادم؟



من هم وقتی هم در صورت وجود نداشتن دیتابیس با خطاری send error ویندوز مواجه میشم .

این جملتون را هم که اصلا نمیدونم چی نوشتید!!!!!

mahdi_7610
سه شنبه 31 شهریور 1388, 18:16 عصر
سلام.
ببخشید من متوجه نشدم.
منظورتون چیه که عکس العمل نشون ندادم؟
یعنی وقتی کاربر رمز عبور را وارد میکنه ممکنه در ورود به برنامه دچار مشکل بشه . مثل نبودن دیتابیس . در این صورت شما باید فکر به حال این قضیه بکنید و پیغام مناسبی به کاربر بدید که کاربر دقیقا متوجه بشه مشکل از کجا هستش .


این جملتون را هم که اصلا نمیدونم چی نوشتید!!!!!
یعنی وقتی دیتابس پیدا نمیشه کاربر با پیغام send error ویندوز مواجه میشه . و این یعنی کاربر به هیچ وجه نمیدونه که مشکل از کجاست و چی کار باید بکنه .

من اصلا برنامه را ندیدم و فقط همین فرم logon را دیدم .

اما هیچ کدوم از اینا ارزش کار شما را کم نمیکنه .

sara.f
سه شنبه 31 شهریور 1388, 18:22 عصر
یعنی وقتی کاربر رمز عبور را وارد میکنه ممکنه در ورود به برنامه دچار مشکل بشه . مثل نبودن دیتابیس . در این صورت شما باید فکر به حال این قضیه بکنید و پیغام مناسبی به کاربر بدید که کاربر دقیقا متوجه بشه مشکل از کجا هستش .


یعنی وقتی دیتابس پیدا نمیشه کاربر با پیغام send error ویندوز مواجه میشه . و این یعنی کاربر به هیچ وجه نمیدونه که مشکل از کجاست و چی کار باید بکنه .

من اصلا برنامه را ندیدم و فقط همین فرم logon را دیدم .

اما هیچ کدوم از اینا ارزش کار شما را کم نمیکنه .
آخه دوست عزیزم، شما که هنوز برنامه را اجرا نکردید!
همون طور که گفتم اگه db نباشه، پیغام send error نمیده، بلکه در فرم اصلی پیغامی به کاربر میده که میگه db را نتونستم پیدا کنم.
واسه شما هم مگه پیغام send error داده؟

mahdi_7610
سه شنبه 31 شهریور 1388, 18:48 عصر
آخه دوست عزیزم، شما که هنوز برنامه را اجرا نکردید!
چه ربطی داره . :لبخند:
کاربر چه برنامه را کامل اجرا کرده باشه چه نکره باشه شما نباید هیچ جای سوالی برای کاربر بزارید .


همون طور که گفتم اگه db نباشه، پیغام send error نمیده، بلکه در فرم اصلی پیغامی به کاربر میده که میگه db را نتونستم پیدا کنم.
اصلا فرم اصلی باز نمیشه . پیغام send error میده


واسه شما هم مگه پیغام send error داده؟
بله

چون من کامل برنامه را ندیدم دیگه اظهار نظر نمی کنم . :چشمک:

sara.f
سه شنبه 31 شهریور 1388, 20:18 عصر
چه ربطی داره . :لبخند:

ربطش توی اینه که وقتی میگی من برنامه را اجرا نکردم، منم فکر می کنم که داری بر اساس پست ها ی قبلی صحبت میکنی و تا الان نمی دونستم که واست پیغام send error داده.
واسه منم این پیغام را نمیده و واسه همینم علم غیب ندارم که بدونم چرا توی سیستم شما اینطوریه؟! نمی دونم.

ali_autumnal
سه شنبه 31 شهریور 1388, 21:20 عصر
خیلی واسم عجیبه!!!!!!!!!!!!!:متفکر:
چون من حتی الان db را delete کردم ولی وقتی فرم اصلی باز میشه پیغام خطایی مبنی بر اینکه نمی تونه db را پیدا کنه را داد.
دوستان دیگر هم مشکل آقای برمودا را دارند؟!!!!




منم دقیقا همین مشکل رو دارم

اینم پیغام ویندوز:
project 2 has encountered a problem and needs to close. We are sorry for the inconvenience

ali_autumnal
سه شنبه 31 شهریور 1388, 21:28 عصر
گفته بودید در مورد رنگ اش هم نظر بدیم:

ببخشید البته:

خیلی بچه گونه است!!

در ضمن در مورد login بهتره کاربر رو محدود کنید تا بیش از مثلا 5بار که نام کاربری و پسورد رو اشتباه داد بطور کامل از برنامه خارج بشه.

واز طرفی پیغام مبنی بر رمز اشتباه است هم برای نام کاربری و هم برای پسورد جالب نیست.
بهتره برنامه چک کنه و ببینه کدوم یکی اشتباه و تک تک اعلام کنه.
(البته نظر شخصی منه. حیف که 2008 نصب نکردم و نمیتونم سورس رو کامل ببینم. مجبورم تا اواخر مهر با 2005 کار کنم!)

موفق باشید.

sara.f
سه شنبه 31 شهریور 1388, 22:03 عصر
منم دقیقا همین مشکل رو دارم

اینم پیغام ویندوز:
project 2 has encountered a problem and needs to close. We are sorry for the inconvenience

گفتم که من واقعا نمی دونم چرا؟!!!!!!!!
چونکه واسه خودم این پیغام را نمیده، لطفا اگه کسی برنامه را کامل اجرا کرد به منم بگه اشکال کار از کجاست؟

sara.f
سه شنبه 31 شهریور 1388, 22:08 عصر
گفته بودید در مورد رنگ اش هم نظر بدیم:

ببخشید البته:

خیلی بچه گونه است!!


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


واز طرفی پیغام مبنی بر رمز اشتباه است هم برای نام کاربری و هم برای پسورد جالب نیست.
بهتره برنامه چک کنه و ببینه کدوم یکی اشتباه و تک تک اعلام کنه.
باشه اینو در نظر می گیرم.

ممنونم.

sara.f
سه شنبه 31 شهریور 1388, 22:16 عصر
می خواستم بدونم این برنامه نکته مثبتی هم داشت؟!!! :ناراحت:
یا سراسر ایراد و اشکاله؟
50 نفر دیگه ای که این برنامه رو download کردن نظری نداشتن؟!

Amir Oveisi
چهارشنبه 01 مهر 1388, 00:41 صبح
چرا نكات مثبتش خيلي بيشتر از ايراد هاشه.
همه بحث هاي آموزشي كه در برنامه قرار دادين جزو نكات مثبت برنامه محسوب ميشن.

در مورد ظاهر برنامه نميشه به صورت قطعي نظر داد چون فاكتورهاي زيادي داره و بسته به نوع برنامه و كاربران، دچار تغييرات زيادي ميشه. مثلا يك برنامه مديريتي براي يك سازمان رسمي مسلما خيلي با يك برنامه آموزشي از نظر ظاهري متفاوت خواهد بود و اصلا مقايسه اين دو با هم كار بي معني اي هست.
بحث ديگه اينه كه ممكنه نظر دو نفر در مورد ظاهر يك برنامه فرق داشته باشه و نبايد به گونه اي كه در پست هاي قبلي ديده ميشه اظهار نظر مطلق كرد و تنها ميشه نظر شخصي رو بيان كرد.

من چون فرم اصلي برنامه رو نديدم نميتونم نظري بدم اما اين نكات رو عرض كردم چون ديدم موضوع و مسير بحث داره منحرف ميشه.

موفق باشيد

alireza_tavakol
چهارشنبه 01 مهر 1388, 00:46 صبح
با تشکر از دوستانی که نظرات خود را ثبت کردند تا گامی در ارتقاع سطح علمی همگان باشد

برنامه شما از نظر Exception Handling روی سیتم من شکلی نداشت ( راستشو بخواهید من اصلا" بانک برنامه شما رو دانلو نکردم و توانستم برنامه شما رو اجرا کنم و هیچ خطایی ندیدم) من فکر میکنم mahdi_7610 چون روی سیستمش VS2005 داره و پروژه شما با فرم ورک 3.5 کامپایل شده واسه همین قبل از اجرای برنامه با خطا مواجه شده ولی نمی دونم چرا دوست و استاد عزیزم آقای برمودا با خطا مواجه شده ؟

من اگه جای شما بودم فایل بانک اطلاعاتی رو بدون استفاده از SQL Server قابل استفاده قرار می دادم تا این حرف و حدیثا پیش نیاد ( استفاده از SQLEXPRESS )


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

من با این نظر مخالفم چون امنیت داخلی برنامه به شدت کاهش پیدا میکنه ، کمااینکه من توی هیچ برنامه حرفه ای این سناریو رو ندیدم

البته من همیشه دوست دارم دیگران معایب کار هام رو بهم بگن واسه همین من فقط در مقام یک منتقد قرار میگیرم ولی اگه بخواهم دور از این دیدگاه نظر بدم ، برنامه شما نکات خیلی خوبی هم داشت مثلا" استفاده از فایل app.config برای ذخیره رشته اتصال یا مثلا" استفاده از panel و تنظیم خصوصیت dock که در هنگام طراحی فرم ها خیلی کمک میکنه به آسایش برنامه نویس و ... شاید این نکاتی که شما رعایت کردین کمتر برنامه نویسی بهش توجه می کنه

در کل من وقتی از چیزی انتقاد میکنم به این معنا است که اون چیز ارزش بررسی رو داشته و واسم قابل توجه بوده که وقت گذاشتم .و البته شما نباید از انتقاد دوستان ناراحت بشید



در مورد رنگش هم نظر بدید لطفا.

ظاهر برنامه
تا حالا به رفتار برنامه های بزرگ مثل فوتشاپ یا آفیس و ... در هنگام تغییر تنظیمات سیستم عاملتون توجه کردین؟
- اگه شما تنظیمات گرافیکی سیستم عاملتون رو تغییر بدین (right click in desktop -> properties -> themes) یا (right click in desktop -> properties -> appearance -> color schema)
رنگ دکمه ها و یا فرم های این برنامه ها نسبت به سیستم عامل شما هماهنگ میشه ولی با این تغییری که شما در برنامتون دادین این قابلیت رو از کاربر گرفتین!
در ضمن وقتی که قرار فرم های برنامه ما رنگ خواصی داشته باشه باید هم رنگ با فرم های حقیقی و فیزیکی محیط کار باشه تا کاربر به تونه راحتر با برنامه کامپیوتری هماهنگ بشه ( یکی از اصول طراحی داخلی برنامه مربوط میشه به مهندسی نرم افزار )
اما اگه قرار رنگ بندی داخلی برنامه کاملا" اجباری باشه باید از علم وان شناسی و تاثیر رنگ ها خبر داشته باشم و همچنین به میزان نور در محیط و حالت های کابر استفاده کننده خبر داشته باشیم ( اصلی تریم مبحث دروس گرافیک کامپوتری1 و 2 )

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

توضیحات comment
یکی از اصلی ترین بخش های برنامه که شما اصلا" بهش اهمیتی ندادین

احراز هویت
من اصلا" اعتقادی به استفاده از این روش شما ندارم و اصلا" دوست ندارم توی برنامه هام از math.asb برای احراز هویت استفاده کنم شما می تونستید از دو تا شرط تو در تو استفاده کنید



به نظر شما چه عنوانی انتخاب کنم؟


عنوان تاپیک
مثلا" : یک برنامه ای برای ذخیره داده ها و عکس در بانک و گزارش گیری توسط Crystal


با تشکر از روحیه سخاوتمندانه شما دوست عزیز که حاضر شده اید source برنامه خود را در جلو دیدگان ما طالبان علم قرار دهید:لبخندساده:

atryad
چهارشنبه 01 مهر 1388, 02:20 صبح
واز طرفی پیغام مبنی بر رمز اشتباه است هم برای نام کاربری و هم برای پسورد جالب نیست.
بهتره برنامه چک کنه و ببینه کدوم یکی اشتباه و تک تک اعلام کنه.
فکر کنم این یک از خطاهای بزرگی است که بعضی از برنامه نویسان مرتکب میشن من هم با دوستمونalireza_tavakol موافقم چون این کار باعث میشه که ما امنیت برنامه رو یه پله بایین بیاوریم و اینکه کاربر بدونه کدوم ایتم رو اشتباه وارد کرده اصلا ایده خوب و جالبی نیست




برنامه هم بدون دیتابیس روی سیستم من اجرا شد و تا حالا خطای send error نداده
فکر کنم دوست عزیز alireza_tavakol به تمام موارد اشاره کردند
با تشکر از همه دوستان

debugger
چهارشنبه 01 مهر 1388, 08:28 صبح
بهتر بود با sql2005 می نوشتی تا همه استفاده می کردن

من که نتوستم برنامه ی شما را ببینم

sara.f
چهارشنبه 01 مهر 1388, 13:58 عصر
سلام
خب پس دیدید exception handling من اشکالی نداره؟ :لبخندساده:

sara.f
چهارشنبه 01 مهر 1388, 14:25 عصر
من اگه جای شما بودم فایل بانک اطلاعاتی رو بدون استفاده از SQL Server قابل استفاده قرار می دادم تا این حرف و حدیثا پیش نیاد ( استفاده از SQLEXPRESS )


سلام
مرسی از نظرات دوستان.
چطوری؟ یعنی همین که db را در برنامه Add کنم؟
من میخواستم این کار را انجام بدم، ولی خب نیازی ندیدم و فایل db را گذاشتم.
البته فکر می کنم برای تعیین source برای crystal report هم با مشکل مواجه شده بودم.


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


تا حالا به رفتار برنامه های بزرگ مثل فوتشاپ یا آفیس و ... در هنگام تغییر تنظیمات سیستم عاملتون توجه کردین؟
- اگه شما تنظیمات گرافیکی سیستم عاملتون رو تغییر بدین (right click in desktop -> properties -> themes) یا (right click in desktop -> properties -> appearance -> color schema)
رنگ دکمه ها و یا فرم های این برنامه ها نسبت به سیستم عامل شما هماهنگ میشه ولی با این تغییری که شما در برنامتون دادین این قابلیت رو از کاربر گرفتین!
در ضمن وقتی که قرار فرم های برنامه ما رنگ خواصی داشته باشه باید هم رنگ با فرم های حقیقی و فیزیکی محیط کار باشه تا کاربر به تونه راحتر با برنامه کامپیوتری هماهنگ بشه ( یکی از اصول طراحی داخلی برنامه مربوط میشه به مهندسی نرم افزار )
اما اگه قرار رنگ بندی داخلی برنامه کاملا" اجباری باشه باید از علم وان شناسی و تاثیر رنگ ها خبر داشته باشم و همچنین به میزان نور در محیط و حالت های کابر استفاده کننده خبر داشته باشیم ( اصلی تریم مبحث دروس گرافیک کامپوتری1 و 2 )
خب باید به طور مثال رنگ این برنامه را چطوری انتخاب میکردم؟


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


توضیحات comment
یکی از اصلی ترین بخش های برنامه که شما اصلا" بهش اهمیتی ندادین
نه اینکه نخواستم اهمیت بدم ولی خوب فکر نمی کردم لازم باشه.
یعنی هر وقت خواستم در این سایت برنامه ای up کنم باید از comment استفاده کنم؟


احراز هویت
من اصلا" اعتقادی به استفاده از این روش شما ندارم و اصلا" دوست ندارم توی برنامه هام از math.asb برای احراز هویت استفاده کنم شما می تونستید از دو تا شرط تو در تو استفاده کنید

من اولین بار بود که داشتم در یه برنامه از احراز هویت استفاده میکردم و این روشم، روش خودم نیست وگفتم که از توی سایت فهمیدم و به روش دیگه ای هم فکر نکرده بودم.
حالا روش شما چه طوریه؟


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

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

sara.f
چهارشنبه 01 مهر 1388, 14:31 عصر
بهتر بود با sql2005 می نوشتی تا همه استفاده می کردن

من که نتوستم برنامه ی شما را ببینم

خب حیف شد!
ولی آخه دوست عزیز وقتی تمام زندگی من 2008 هست که من نمی تونم واسه یه برنامه همه رو بکنم 2005!!!

در ضمن من پیشنهاد می کنم شما هم کم کم version 2008 را نصب کنید، خیلی خوبه. :لبخند:

sara.f
چهارشنبه 01 مهر 1388, 14:38 عصر
من می خواستم عنوان تاپیک را یکمی تغییر بدم ولی فقط عنوان اولین پستم تغییر کرد. :لبخند:
چطوریاست؟!!!

Amir Oveisi
چهارشنبه 01 مهر 1388, 16:01 عصر
به يكي از مديران پيغام خصوصي بدين تا تغيير بدن عنوان تاپيك رو

hamidinejad
چهارشنبه 01 مهر 1388, 16:37 عصر
2008 خیلی بهتر از 2005 هست اما من یکسری کامپوننت ها دارم کرک شده که فقط روی2005 می تونم از اونها استفاده کنم!

zahra_63
چهارشنبه 01 مهر 1388, 16:38 عصر
سلام سارا خانوم چطوری دیتا بیس رو پیدا کنم؟
دیتا بیس رو تو کدوم قسمت گذاشتین ؟

sara.f
چهارشنبه 01 مهر 1388, 16:41 عصر
سلام سارا خانوم چطوری دیتا بیس رو پیدا کنم؟
دیتا بیس رو تو کدوم قسمت گذاشتین ؟
سلام عزیزم.
data base را در پست 3 گذاشتم.
این یک backup از db اصلی هست که بایدبرای استفاده در SQL server آن را restore کنی.

saeeedft
چهارشنبه 01 مهر 1388, 16:47 عصر
سلام دوست عزیز، متاسفانه امکان دیدن برنامتون در حال حاضر برام امکان پذیر نسیت، اما همین که لطف کردیدو این برنامه رو (چه با اشکال و چه بی اشکال ) گذاشتید تا بقیه دوستانتون استفاده کنندخودش خیلی کار قشنگیه، موفق باشید

sara.f
چهارشنبه 01 مهر 1388, 16:59 عصر
سلام دوست عزیز، متاسفانه امکان دیدن برنامتون در حال حاضر برام امکان پذیر نسیت، اما همین که لطف کردیدو این برنامه رو (چه با اشکال و چه بی اشکال ) گذاشتید تا بقیه دوستانتون استفاده کنندخودش خیلی کار قشنگیه، موفق باشید

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

اَرژنگ
چهارشنبه 01 مهر 1388, 17:44 عصر
1) چرا توی فرم "صفحه ورود" متد IsValidLogin و کلیه عملیات اعتبار سنجی رو یک جا انجام ندادین؟
-این طوری که من شنیدم یکی از اصول برنامه نویسی شی گرا استقلال هر کلاس است


اگر منظورتان این است که چرا کد اعتبار سنجی را نریختن تو فرم لگین و به یک کلاس دیگر که خصوصیتش اعتبار سنجی است واگذار کردن جوابش همانی است که خودتان گفتید: "یکی از اصول برنامه نویسی شی گرا استقلال هر کلاس است"

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

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

alireza_tavakol
چهارشنبه 01 مهر 1388, 23:26 عصر
با تشکر از مدیران محترم که همواره آف تاپیک ها رو مورد عنایت قرار می دهند:چشمک:


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

مفهوم واژه استقلال در جایگاه معین می شود و باید توجه داشت که کاملا" نسبی است و هیچگاه نمی توان با قاطعیت کامل در این باره صحبت کرد.

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


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

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

با تشکر/

corona
پنج شنبه 02 مهر 1388, 06:49 صبح
دوست عزیز ممنون از کار قشنگیکه کردی و سورس برنامت رو گذاشتی . خوشبختانه اکثر بچه های برنامه نویس مثل هم هستن و از دادن اطلاعات به هم بدشون نمیاد. برنامت رو من اجرا کردم . وصل نشدن به دیتابیس رو قشنگ هندل کردی و مشکلی نداشت . چند تا پراپرتی مهم رو سعی کن تو برنامه هات ازشون به درستی استفاده کنی. یکیش مثلا Focus دادن به کنترل ها ، تو فرم لاگین وقتی نمایش داده میشه تکست باکس نام کاربری رو بهش فوکوس بده تا کاربر برنامت مجبور نباشه کلیک کنه داخلش و بعد با یک tab بره کنترل بعدی . یک پراپرتی دیگه Acceptbutton , cancel button هر فرم هستش که از اونا هم باید درست استفاده کنی ، مثلا همین فرم لاگین با زدن Enter کد دکمه ورود اجرا بشه . توی فرم اطلا عات کارمندان Tabindex ها رو اصلا ست نکردی ،کد کارمند که کلید اصلی شماست و idendity هم هستش و کاربربه هیچ وجه نمیتونه درش تغییری اعمال کنه رو چرا براش یک تکست باکس و لیبل هدر دادی و نشون دادی . توی تب جستجو وقتی بدون انتخاب چک باکسهات جستجو زده میشه هیچ اتفاقی نمیفته : همیشه تو برنامه هات درنظر داشته باش که ممکنه یک کاربر خنگ مثه من با برنامت بخواد کار کنه پس در این جور مواقع یک پیغامی به من بده که باید اول مثلا فیلد جستجو را انتخاب نمایید ..، باتون هات رو نام گذاری نکردی و این میتونه برا خودت هم چندوقته دیگه ایجاد مشکل کنه . برای کار با دیتابیس تو هر برنامه ای که مینویسی سعی کن تمام کارهای مربوط به دیتابیس رو تو یک کلاس انجام بدی ، در مورد مزایای برنامه نویسی چند لایه اساتید به اندازه کافی توضیح دادن تو فروم ، مثلا من تو برنامه های خودم همیشه یک کلاس دارم به نام clsDbConnection که هر ارتباطی که قراره با دیتابیس انحام بشه باید از طریق این کلاس باشه ، اولش این جور کدنویسی برام سخت بود ولی وقتی عادت کنی بهش واقعا از این کار لذت میبری چون این جوری داری به سمتی پیش میری که همه قسمت های برنامت رو از هم تفکیک کنی و هرکاری فقط از طریق یک مجرا ( به قول Red_Code که استاد من هست تو سی شارپ ) انجام میشه . . کلا این ویژگیها رو میتونی به همه برنامه هایی که مینویسی تعمیم بدی .همین چیزای به ظاهر بی اهمیت میتونه خیلی تو کاربرای برنامت تاثیر گذار باشه .البته اینا همش نظرات شخصی من بود و ممکنه برا شما مورد قبول واقع نشه . در مورد نکات مثبت هم که برنامت به نظر من خیلی بیشتر بود نکات مثبتش و اگه بخوام در موردش بگم باید خیلی بنویسم ، مسلما همه متوجه نکات خوب برنامت میشن .بازم ممنون .

sara.f
پنج شنبه 02 مهر 1388, 08:20 صبح
سلام دوست عزیز.
واقعا وقتی نظر می دید خیلی خوشحال می شم.
به نکته های خوبی اشاره کردید،حتما سعی می کنم که توی نسخه جدید این برنامم که میخوام با فرم های بیشتری بنویسمش این نکات را هم به کار ببرم.


یک پراپرتی دیگه Acceptbutton , cancel button هر فرم هستش که از اونا هم باید درست استفاده کنی ، مثلا همین فرم لاگین با زدن Enter کد دکمه ورود اجرا بشه .

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


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

درسته،چون اگر بخوام توی برنامه جدیدم برای وصل شدن به db و .... ، توی هر فرم کد بنویسم، میشه یه عالمه کار بیهوده.
من برنامه نویسی چند لایه را شنیدم ولی تا حالا کار نکردم. خیلی سخته؟؟!!

در ضمن نکاتی که گفتی برای من اصلا بی اهمیت نبود.


لصفا در نظر سنجی هم شرکت کنید.

پیروز باشی :لبخندساده:

اَرژنگ
پنج شنبه 02 مهر 1388, 10:35 صبح
با تشکر از مدیران محترم که همواره آف تاپیک ها رو مورد عنایت قرار می دهند:چشمک:

مفهوم واژه استقلال در جایگاه معین می شود و باید توجه داشت که کاملا" نسبی است و هیچگاه نمی توان با قاطعیت کامل در این باره صحبت کرد.

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

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

با تشکر/

مستقل (Decouple) و یکسان (Cohesion) بودن باید سعی بشه که با هم بالا برده بشند.
وقتی که در کد شروع میکنیم که مفهومات مختلف را با هم قاطی کنیم (منطق درست بودن اعتبارات و نشان دادن و گرفتن اعتبارات)، از یکسانی کد کم میکنیم.
در برنامه هایی که عملیات احراز هویت به صورت ایستا هم انجام بشه، بازهم بهتر است که کارهایه مختلف قسمت بندی بشن و جدا جدا انجام بشن.
چونکه وقتی که کد کارهایه مختلف با هم قاطی میشند از هم باز کردنشان از اول جدا نگه داشتنشان بیشتر زمان میبره.
این هم لینک به پست جناب سینا، استفاده‌اشان از مفاهیم شییگرایی و اینکه چطوری کارهایه مختلف را با استفاده از روادید از هم مستقل کردند واقعا لذت بردنی هست. همه باید سعی کنند که به این حد کدنویسی عرج کنند (هر دفعه میبینمش از سادگی و تمیزیزیش کیف میکنم، در ضمن هم انعتاف پذیری بالا دارد و به سختی هم نمیشکنه):

http://barnamenevis.org/forum/showthread.php?t=94791

sara.f
پنج شنبه 02 مهر 1388, 12:21 عصر
سلام دوباره.
خیلی خوبه که دارم مطالب جدید یاد می گیرم، امیدوارم برای شما هم مفید باشه.
مرسی از تمام دوستان خوبم.
فقط کاش به سوالای منم جواب می دادید.

نکته مهم:

ای دوستتتتتتتتتتتتتتتتتتتتتت تان :لبخند: (تمام افرادی که برنامه را download کردند)
از این حدود 100 نفر، فقط 6 نفر در نطر سنجی شرکت کردن. :ناراحت:
لطفا در نظر سنجی هم لطف بفرمایید شرکت کنید، خوشحال میشم. :لبخندساده:
همگی پیروز باشید.

corona
پنج شنبه 02 مهر 1388, 12:29 عصر
sara.f (http://barnamenevis.org/forum/member.php?u=114872) دوست من در نظر سنجی هم شرکت کردیم :دی

برا Accept button وCencel Button پرسیدی . ببین عزیز هر فرمی این دو پراپرتی رو داره . شما وقتی روی فرمت اطلاعات رو داری وارد می کنی اگه خواستی با زدن کلید Enter صفحه کلید کد یکی از باتون هات اجرا بشه ، مثلا تو همون فرم لاگین که داری وقتی نام و پس رو وارد کردی مجیور نباشی بری حتما با موس روی دکمه لاگین کلیک کنی و هر جای فرمت که بودی ، فوکوس فرم دست هر کنترلت که باشه اهمیت نداره ، فقط چیزی که برات مهمه اینه که با زدن Enter کد لاگین اجرا بشه ، برای اینچور مواقع پراپرتی Acceptbutton رو میاریش از توی propertis window وقتی منوی کشوییش رو باز کنی می بینی که اسم تمام باتون های فرم جاری رو برات لییست کرده ، حالا هر باتونی که میخوای با زدن Enter کدش اجرا بشه رو اینجا انتخاب کن . به طور مشابه برای Cancel Button ، هر وقت خواستی با زدن کلید ESC کد یکی از باتون هات اجرا بشه تو این پراپرتی اسم اون باتون رو انتخاب کن ، مثلا دکمه خروج از نرم افزار میتونه گزینه مناسبی باشه .

در مورد برنامه نویسی چند لایه هم که پرسیدی ، دوستان به اندازه کافی براش مطلب گذاشتن تو فروم ، لازمه بهت بگم هیچ سختی نداره و برای این که بخوای برنامه هایی که می نویسی به راجتی در مقابل تغببراتی که در آینده میخوای درش ایحاد کنی منعطف باشه و با دردسر مواحه نشی بهترین شیوه کد نویسی همین 3 لایه ( البته بازم نظر شخصیمه ) هستش .پیشنهاد می کنم برا اینکه به ارزشش بیشتر پی ببری یکم در مورد معماری MVC ( Model - View - Controller مطلب بخونی ، معماری که بخوبی 3 لایه بودن رو به کار گرفته و زبانی مثل Rails کاملا بر اساس این معماری کار می کنه و جوملا هم کاملا با همین معماری کار میکنه .بعد میتونی ایده هایی که از این معماری میگیری رو تو برنامه های Winapp خودت اعمال کنی و نهایت استفاده رو ازش ببری . موفق باشی

hamide_kh
پنج شنبه 02 مهر 1388, 22:19 عصر
سلام
دوست عزیز ممنون از برنامه ای که قرار دادید،فقط من یک مشکل دارم که وقتی می خوام دیتابیس را در sql2005 ری استور کنم و وقتی فایل را انتخاب کنم اونا برام نمیاره،اگه ممکنه طریقه ری استور کردنش را هم بگید

sara.f
پنج شنبه 02 مهر 1388, 22:27 عصر
سلام
دوست عزیز ممنون از برنامه ای که قرار دادید،فقط من یک مشکل دارم که وقتی می خوام دیتابیس را در sql2005 ری استور کنم و وقتی فایل را انتخاب کنم اونا برام نمیاره،اگه ممکنه طریقه ری استور کردنش را هم بگید

سلام دوست عزیز
من که در همون پست اول گفتم db با SQL2008 هست.
version پایین تر نمی تونه version بالاتر را ساپورت کنه.
visual2005 هم دارید؟

A.Shafiee
پنج شنبه 02 مهر 1388, 22:57 عصر
تنظيمات restore فراموش نشه گلم

sara.f
پنج شنبه 02 مهر 1388, 23:14 عصر
تنظيمات restore فراموش نشه گلم
سلام.
ببخشید، متوجه نشدم!
منظور اینه که بگم چطور باید restore کرد؟

hamide_kh
جمعه 03 مهر 1388, 10:33 صبح
سلام دوست عزیز
من که در همون پست اول گفتم db با SQL2008 هست.
version پایین تر نمی تونه version بالاتر را ساپورت کنه.
visual2005 هم دارید؟

سلام دوست عزیز ممنون از توجهتون
شما که زحمت کشیدید اگه ممکنه کمی در مورد کدها مثل نحوه استفاده از app.config در connection string یا نحوه login کردن به سیستم توضبح بدید

corona
جمعه 03 مهر 1388, 13:04 عصر
sara.f (http://barnamenevis.org/forum/member.php?u=114872) شما میتونی اسکریپت دیتابیست رو برا دوستمون بزاری می تونه تو 2005 برگردونه دیتابیس شما رو . من خودم این کار پیش اومده برام انجام دادم ، مگه اینکه از امکانات خاصی که فقط Sql 2008 داره استفاده کرده باشی که تو این برنامه بعید میدونم . موفق باشی

sara.f
جمعه 03 مهر 1388, 13:20 عصر
سلام دوستان.
اگه مشکلتون فقط با db هست و به دلیل اینکه version2008 هست،نمی تونید ازش استفاده کنید، من فیلدهای جدولم را در اختیارتون قرار میدم تا خودتون db را تهیه کنید، خیلی راحت هست.


code(PK,int,not null,Identity specification)
fname(nvarchar(50),null)
lname(nvarchar(50),null)
position(nvarchar(50),null)
office(nvarchar(50),null)
pic(varbinary(max),null)


نام جدول --> employee

نام دیتا بیس --> project2


collation را Arabic_100_cI_AI انتخاب کنید

sara.f
جمعه 03 مهر 1388, 13:33 عصر
sara.f (http://barnamenevis.org/forum/member.php?u=114872) شما میتونی اسکریپت دیتابیست رو برا دوستمون بزاری می تونه تو 2005 برگردونه دیتابیس شما رو . من خودم این کار پیش اومده برام انجام دادم ، مگه اینکه از امکانات خاصی که فقط Sql 2008 داره استفاده کرده باشی که تو این برنامه بعید میدونم . موفق باشی

سلام
اینم script جدول و db

table-script



USE [project2]
GO
/****** Object: Table [dbo].[employee] Script Date: 09/25/2009 14:02:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[employee](
[code] [int] IDENTITY(1000,1) NOT NULL,
[fname] [nvarchar](50) NULL,
[lname] [nvarchar](50) NULL,
[position] [nvarchar](50) NULL,
[office] [nvarchar](50) NULL,
[pic] [varbinary](max) NULL,
CONSTRAINT [PK_employee] PRIMARY KEY CLUSTERED
(
[code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO



data base-script



USE [master]
GO
/****** Object: Database [project2] Script Date: 09/25/2009 13:59:39 ******/
CREATEDATABASE [project2] ONPRIMARY
( NAME =N'p2',FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\project2.mdf ', SIZE = 4096KB , MAXSIZE =UNLIMITED, FILEGROWTH = 1024KB )
LOGON
( NAME =N'p2_log',FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\project2_1.l df', SIZE = 3840KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTERDATABASE [project2] SETCOMPATIBILITY_LEVEL= 100
GO
IF (1 =FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [project2].[dbo].[sp_fulltext_database]@action ='enable'
end
GO
ALTERDATABASE [project2] SETANSI_NULL_DEFAULTOFF
GO
ALTERDATABASE [project2] SETANSI_NULLSOFF
GO
ALTERDATABASE [project2] SETANSI_PADDINGOFF
GO
ALTERDATABASE [project2] SETANSI_WARNINGSOFF
GO
ALTERDATABASE [project2] SETARITHABORTOFF
GO
ALTERDATABASE [project2] SETAUTO_CLOSEOFF
GO
ALTERDATABASE [project2] SETAUTO_CREATE_STATISTICSON
GO
ALTERDATABASE [project2] SETAUTO_SHRINKOFF
GO
ALTERDATABASE [project2] SETAUTO_UPDATE_STATISTICSON
GO
ALTERDATABASE [project2] SETCURSOR_CLOSE_ON_COMMITOFF
GO
ALTERDATABASE [project2] SETCURSOR_DEFAULTGLOBAL
GO
ALTERDATABASE [project2] SETCONCAT_NULL_YIELDS_NULLOFF
GO
ALTERDATABASE [project2] SETNUMERIC_ROUNDABORTOFF
GO
ALTERDATABASE [project2] SETQUOTED_IDENTIFIEROFF
GO
ALTERDATABASE [project2] SETRECURSIVE_TRIGGERSOFF
GO
ALTERDATABASE [project2] SETDISABLE_BROKER
GO
ALTERDATABASE [project2] SETAUTO_UPDATE_STATISTICS_ASYNCOFF
GO
ALTERDATABASE [project2] SETDATE_CORRELATION_OPTIMIZATIONOFF
GO
ALTERDATABASE [project2] SETTRUSTWORTHYOFF
GO
ALTERDATABASE [project2] SETALLOW_SNAPSHOT_ISOLATIONOFF
GO
ALTERDATABASE [project2] SETPARAMETERIZATIONSIMPLE
GO
ALTERDATABASE [project2] SETREAD_COMMITTED_SNAPSHOTOFF
GO
ALTERDATABASE [project2] SET HONOR_BROKER_PRIORITY OFF
GO
ALTERDATABASE [project2] SETREAD_WRITE
GO
ALTERDATABASE [project2] SETRECOVERYFULL
GO
ALTERDATABASE [project2] SETMULTI_USER
GO
ALTERDATABASE [project2] SETPAGE_VERIFYCHECKSUM
GO
ALTERDATABASE [project2] SETDB_CHAININGOFF
GO



اگه سوالی بود بپرسید.
پیروز باشید.:لبخندساده:

hamide_kh
جمعه 03 مهر 1388, 16:05 عصر
سلام دوست عزیز sara.fاگه ممکنه به پست 52 هم نگاهی بیاندازید،در ضمن یه سوال برام پیش اومده:من از روش شما برای ذخیره عکس در دیتابیسم استفاده کردم حالا می خوام با دوبار کلیللک کردن روی دیتا گریدم عکس مربوط به اون سلول روی picture box بشینه
اگه ممکنه راهنماییم کنید

Amir Oveisi
جمعه 03 مهر 1388, 17:34 عصر
با سلام
بهتر نبود يك فايل mdf از ديتابيس برنامه رو ميذاشتين به جاي اين ها؟
معمولا تو اين جور پروژه ها از sql express استفاده كنيد بهتره.
يك تانكر آب خوبه اما براي شستن يك ليوان يك سطل هم كافيه.
البته نظر شخصيه بنده هست و از روي تجربه دارم ميگم.

موفق باشيد.

sara.f
جمعه 03 مهر 1388, 17:41 عصر
با سلام
بهتر نبود يك فايل mdf از ديتابيس برنامه رو ميذاشتين به جاي اين ها؟
معمولا تو اين جور پروژه ها از sql express استفاده كنيد بهتره.
يك تانكر آب خوبه اما براي شستن يك ليوان يك سطل هم كافيه.
البته نظر شخصيه بنده هست و از روي تجربه دارم ميگم.

موفق باشيد.

سلام
من که در پست 32 هم گفتم چرا ، و هم سوال کردم چطوری؟
ولی هیچکسی جوابم را نداد.
در ضمن فکر نمی کردم بچه ها با db مشکل پیدا کنن.
تا به حال هم اگر از دوستان به مشکل برخورد کردن، من سعی کردم که پاسخشون را بدم.
به هر حال اینا همش تجربست،(زندگی همش تجربست)
این تاپیک هم واسه همین ایجاد کردم، نه؟! :لبخندساده:
به امید خدا میخوام پیشنهادات تمامی شما دوستان عزیزم را به کار بگیرم و برنامه را بهبود بدم.

sara.f
جمعه 03 مهر 1388, 17:50 عصر
سلام دوست عزیز ممنون از توجهتون
شما که زحمت کشیدید اگه ممکنه کمی در مورد کدها مثل نحوه استفاده از app.config در connection string یا نحوه login کردن به سیستم توضبح بدید


سلام.
شما دقیقا چه مشکلی دارید؟
app.config کار خاصی نمی کنه دوستم، فقط واسه نگهداری connection string هست، وقتی می خواید پروژه را به db وصل کنید، از طریق data --> add new data source و طی مراحل wizard به db مورد نظر وصل میشید و این فایل app.config ایجاد میشه.
و نیازی نیست هر دفعه app.config را ایجاد کنید.


login شدن به چه سیستمی؟!
منظورتون کدهای فرم login هست؟!
چه قسمتی از کد را متوجه نشدید؟

sara.f
جمعه 03 مهر 1388, 18:07 عصر
سلام دوست عزیز sara.fاگه ممکنه به پست 52 هم نگاهی بیاندازید،در ضمن یه سوال برام پیش اومده:من از روش شما برای ذخیره عکس در دیتابیسم استفاده کردم حالا می خوام با دوبار کلیللک کردن روی دیتا گریدم عکس مربوط به اون سلول روی picture box بشینه
اگه ممکنه راهنماییم کنید

سلام

اینم کد برای شما



privatevoid dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
MemoryStream ms = newMemoryStream((byte[])(dataGridView1.CurrentRow.Cells[5].Value));
pictureBox1.Image = Image.FromStream(ms);

}
catch (Exception t)
{
MessageBox.Show(t.Message);
}

}


رویداد CellDoubleClick را از Events می آورید.
cell[5] برای من سلول عکس بوده.

بازم سوال داشتی بپرس.

پیروز باشی.:لبخندساده:

hamide_kh
جمعه 03 مهر 1388, 22:33 عصر
بازم سلام و ممنون از توجهتون
1-در مورد app.config بله من کدها را داخلش نوشتم اما نمیدونم اونا چطور به sqlconnection ربط بدم

منظورتون کدهای فرم login هست؟!
2-بله منظور کدهای فرم login و کلاس security هست
راستی یه سوال دیگه
آیا این روش ذخیره عکس شما در دیتابیس یک روش استاندارد هست و میشود در پروژه های تجاری از اون استفاده کرد
بازم ممنون

sara.f
جمعه 03 مهر 1388, 23:20 عصر
بازم سلام و ممنون از توجهتون
1-در مورد app.config بله من کدها را داخلش نوشتم اما نمیدونم اونا چطور به sqlconnection ربط بدم

2-بله منظور کدهای فرم login و کلاس security هست
راستی یه سوال دیگه
آیا این روش ذخیره عکس شما در دیتابیس یک روش استاندارد هست و میشود در پروژه های تجاری از اون استفاده کرد
بازم ممنون

سلام
شما نیازی ندارید که app.config را تغییر بدید، شما چه کدی را در اون نوشتید؟!
نیازی به کد نویسی نیست، همون طور که در پست قبلی گفتم خودش در اولین بار که پروژه را به db وصل می کنیم ساخته میشه. شما اگر بخ.اید از برنامه من استفاده کنید، نیازی نیست که app.config را تغییر بدید.

در مورد کد فرم login باید بگم که از get,set برای نگهداری پراپرتیها استفاده شده، همون طور که معلومه ما سه تا پراپرتی در فرم login داریم، لیبل message که در کلاس program مقدار دهی میشه ، textbox های user ,pass که مقادیر آنها را کاربر وارد میکنه و این مقادیر در کلاس security با مقادیر اصلی مقایسه میشه، با استفاده از تابع string.compare

در مورد روش ذخیره عکس هم نمی دونم منظورت از استاندارد چیه؟
خب اینم یه روشه که خود عکس را در db ذخیره می کنه. و البته اگر حجم عکستون بالا باشه به نسبت حجم db هم بالا میره، حالا شاید اگر در سایت هم search کنی، بتونی جواب سوالت که آیا روش استانداردی هست یا نه را بهتر بگیری.

اگر سوال دیگه ای در ارتباط با این برنامه داشتید، بازم جواب میدم.

پیروز باشی.

hamide_kh
شنبه 04 مهر 1388, 21:40 عصر
سلام دوست عزیز

شما نیازی ندارید که app.config را تغییر بدید، شما چه کدی را در اون نوشتید؟!
نیازی به کد نویسی نیست، همون طور که در پست قبلی گفتم خودش در اولین بار که پروژه را به db وصل می کنیم ساخته میشه. شما اگر بخ.اید از برنامه من استفاده کنید، نیازی نیست که app.config را تغییر بدید.

من می خوام در یک برنامه دیگه از همین app.configبرای کانکشنم استفاده کنم یعنی بجای اینکه کد زیر را بنویسم


SqlConnection cnn = new SqlConnection("Server=localhost;Database=test;User ID=sa;Password=megh!@#1;");

می خوام بدونم اون فایل app.config را چطور به این sqlconnection ربط بدم

در ضمن من همین سوال را اینجا هم مطرح کردم
http://barnamenevis.org/forum/showthread.php?t=178392
ممنون

sara.f
شنبه 04 مهر 1388, 21:55 عصر
سلام دوست عزیز


من می خوام در یک برنامه دیگه از همین app.configبرای کانکشنم استفاده کنم یعنی بجای اینکه کد زیر را بنویسم


SqlConnection cnn = new SqlConnection("Server=localhost;Database=test;User ID=sa;Password=megh!@#1;");

می خوام بدونم اون فایل app.config را چطور به این sqlconnection ربط بدم

ممنون

سلام، تا اونجا که من می دونم در هر برنامه، app.config خودش را داره.
من متوجه نمی شم، آخه شما چطور می خواید از app.config پروژه من در برنامه دیگه ای استفاده کنید.
شما اگر میخواید در برنامتون از app.config استفاده کنید،خودتون باید یک app.config ایجاد کنید.
برای ایجاد app.config هم در پست 59 روش را گفتم.

hamide_kh
شنبه 04 مهر 1388, 22:03 عصر
سلام

من متوجه نمی شم، آخه شما چطور می خواید از app.config پروژه من در برنامه دیگه ای استفاده کنید.

بله من میدونم
ببنیید من فایل app.config را ساختم تا اینجا درست،...

حالا مشکل من اینه که نمیدونم اونا چطور به sqlconnectionم ربط بدم،یعنی مشکل من اینه که بجای اینکه این کد را بنویسم

SqlConnection cnn = new SqlConnection("Server=localhost;Database=test;User ID=sa;Password=megh!@#1;");
چطور باید sqlconnection را به فایل app.config ربط بدم

mustafa13
دوشنبه 18 آبان 1388, 08:49 صبح
سلام به همه دوستانم. :لبخندساده:
خیلی وقته می خواستم پروژه ای را در اینجا قرار بدم که بالاخره امروز محقق شد.
در این مدتی که عضو این سایت شدم،شاهد این بودم که خیلی از اعضا سوالاتی مشابه یکدیگر دارند و همگی دنبال نمونه کد وبرنامه هستن ولی بیشتر مواقع برنامه ای که بتونه تمام سوالاتشون را پاسخ بده پیدا نمی کردند.من در بسیاری از قسمت های این برنامه از اطلاعات بچه های همین سایت استفاده کردم. :لبخندساده:





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

ورود / حذف / ویرایش / جستجوی اطلاعات
ذخیره عکس در data base/ و نمایش عکس در picture box
گزارش گیری کلی / و بر اساس یک فیلد خاص در crystal report
نمایش عکس در crystal
ارسال پارامتر به crystal
وجود صفحه login/ برنامه دو فرمه
و نکات کوچک دیگر
این برنامه را به دو دلیل اینجا میذارم:
دوستانم از این برنامه استفاده کنند و جواب بسیاری از سوالاتشون را که در اینجا مطرح میشه را دریافت کنند و مجبور نباشند که مثل من برای پیدا کردن جواباشون از این تاپیک به اون تاپیک برند، البته می دونم که ممکنه راه حل های بهتری هم وجود داشته باشه،پس دلیل دوم اینه که:
این برنامه شاید از دید بسیاری از دوستانم حرفه ای نیست، و شاید خیلی اشکالات داشته باشه که دوست دارم همه نظر بدن و من واقعا از اینکه بتونم این برنامه را بهبود بدم خوشحال میشم.
باید اضافه کنم که برنامه تحت نرم افزار visual studio 2008 نوشته شده و پایگاه داده مورد استفاده SQL Server 2008 هست.

بچه ها نظر بدید، لطفا.

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

سلام
ضمن تشکر ممکن که بانک اطلاعاتی اش را به اکسس تبدیل کنی

noroozifar
چهارشنبه 27 آبان 1388, 10:01 صبح
من backup را ریستور کردم هنگام خطا پیغام خطا میده با sql 2000

sara.f
شنبه 28 آذر 1388, 00:57 صبح
من backup را ریستور کردم هنگام خطا پیغام خطا میده با sql 2000
با سلام
اول عذر میخوام که با یک ماه تاخیر جواب میدم، ولی همین امروز این پست را دیدم، آخه حدود یکماه اینترنتم قطع بود.
به علت اینکه در ابتدای کار هم گفته بودم، بانک این نرم افزار با SQL2008 نوشته شده و نسخه های پایین تر ،نسخه های بالاتر را support نمی کنند، حالا برای اینکه شما هم بتونید از برنامه استفاده کنید ، پست های 54 و 55 را مطالعه کنید.

5mmmmm
سه شنبه 24 فروردین 1389, 17:19 عصر
ای وای بچه ها یادم رفت data base را بذارم.:لبخندساده:
این فایل back up هست که می تونید در SQL آن را restore کنید.
نظر بدیدا.

امکانش نیست بانکش را برای sql server 2005 آماده کنی؟
ممنون

5mmmmm
سه شنبه 24 فروردین 1389, 17:59 عصر
خیلی واسم عجیبه!!!!!!!!!!!!!:متفکر:
چون من حتی الان db را delete کردم ولی وقتی فرم اصلی باز میشه پیغام خطایی مبنی بر اینکه نمی تونه db را پیدا کنه را داد.
دوستان دیگر هم مشکل آقای برمودا را دارند؟!!!!

با سلام
من هم با اینکه بانک را ندارم ولی خطا نمیده.

البته من توی فایل program مسیر اجرای برنامه را به فرم 1 تغییر دادم.و تونستم فرم اصلی را ببینم ولی مشکل اینه که با کارکرد برنامه بصورت عملی نتونستم آشنا بشم.
در مورد کدها اگه با توضیح باشه خیلی بهتره و در مورد اشیای تعریفی اگه با اسم های معنی دار تری باشه بهتر و قابل فهم تر میشه.

درمورد invalidlogin و نحوه کار با اون توضیح بدید برای من جالب بود چون من خودم اومده بودم در فرم اصلی فرم چک کردن یوزر را باز کرده بودم و ....

behnam25214
سه شنبه 24 فروردین 1389, 18:46 عصر
من backup رو چطور میتونم ریستور کنم؟:افسرده:

sara.f
سه شنبه 24 فروردین 1389, 20:12 عصر
امکانش نیست بانکش را برای sql server 2005 آماده کنی؟
ممنون

سلام دوست عزیز
امکانش نیست، چون من SQL 2005 روی سیستمم نصب نیست.
ساختن بانکش کاری نداره، من اسم بانک و تمامی فیلدهای جداولم را در پست های 54,55 در اختیارتون گذاشتم و ساخت یه بانک با یه جدول کار سختی نیست.

پیروز باشی.

sara.f
سه شنبه 24 فروردین 1389, 21:03 عصر
من backup رو چطور میتونم ریستور کنم؟:افسرده:

سلام


http://barnamenevis.org/forum/attachment.php?attachmentid=47051&d=1271177869

بعد از اون نام دیتا بیس و محل آن در سیستمتون را انتخاب می کنید.


http://barnamenevis.org/forum/attachment.php?attachmentid=47052&d=1271177869

و در آخر...


http://barnamenevis.org/forum/attachment.php?attachmentid=47053&d=1271177869

( البته دقیقا نمی دونم که این سوال و جواب ، جاش توی این تاپیک بود یا نه. )

arefba
سه شنبه 24 فروردین 1389, 21:04 عصر
من تازه اس کیو ال 2000 رو نصب کردم و وقتی برنامه رو اجرا می کنم میگه رو سیستمتون بانک اطلاعاتی (دیتا بیس ) پیدا نمیشه
لطفا توضیح بدید کامل بگید چطور وصل کنیم
امیدوارم که همینطور شما به دیگران کمک می کنید
دیگران هم به شما کمک کنند

sara.f
سه شنبه 24 فروردین 1389, 21:09 عصر
من تازه اس کیو ال 2000 رو نصب کردم و وقتی برنامه رو اجرا می کنم میگه رو سیستمتون بانک اطلاعاتی (دیتا بیس ) پیدا نمیشه
لطفا توضیح بدید کامل بگید چطور وصل کنیم
امیدوارم که همینطور شما به دیگران کمک می کنید
دیگران هم به شما کمک کنند

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

پیروز باشی.

arefba
سه شنبه 24 فروردین 1389, 21:15 عصر
ببخشید حالا این خطا رو میده
invalid object name employee

sara.f
سه شنبه 24 فروردین 1389, 21:45 عصر
ببخشید حالا این خطا رو میده
invalid object name employee

مگه شما نگفتید که SQL2000 دارید؟
خب شما نمی تونید توی SQL2000 این backup را restore کنید.

sara.f
چهارشنبه 25 فروردین 1389, 14:30 عصر
با سلام
من هم با اینکه بانک را ندارم ولی خطا نمیده.

البته من توی فایل program مسیر اجرای برنامه را به فرم 1 تغییر دادم.و تونستم فرم اصلی را ببینم ولی مشکل اینه که با کارکرد برنامه بصورت عملی نتونستم آشنا بشم.
در مورد کدها اگه با توضیح باشه خیلی بهتره و در مورد اشیای تعریفی اگه با اسم های معنی دار تری باشه بهتر و قابل فهم تر میشه.

درمورد invalidlogin و نحوه کار با اون توضیح بدید برای من جالب بود چون من خودم اومده بودم در فرم اصلی فرم چک کردن یوزر را باز کرده بودم و ....

سلام

منظورتون کدوم قسمت هست؟ در چه موردی توضیح بدم؟

5mmmmm
چهارشنبه 25 فروردین 1389, 14:46 عصر
سلام

منظورتون کدوم قسمت هست؟ در چه موردی توضیح بدم؟

بطور کلی اگر می خواهید پروژه حالت آموزشی داسته باشه بهتره از توضیحات داخل کد استفاده کنید.
ولی اگر زحمت نیست در مورد ConnectionInfo و اینکه چه استفاده ای داره، در مورد InvalidLogin توضیح بدید.

ضمن اینکه اسامی دکمه ها و تکست باکس ها و لیبل ها اگر معنی دار بود بهتر بود.

sara.f
چهارشنبه 25 فروردین 1389, 15:16 عصر
بطور کلی اگر می خواهید پروژه حالت آموزشی داسته باشه بهتره از توضیحات داخل کد استفاده کنید.
ولی اگر زحمت نیست در مورد ConnectionInfo و اینکه چه استفاده ای داره، در مورد InvalidLogin توضیح بدید.

ضمن اینکه اسامی دکمه ها و تکست باکس ها و لیبل ها اگر معنی دار بود بهتر بود.

درست می گید، کلا در برنامه های بعدی این نکات را در نظر گرفتم.

فکر می کنم منظورتون تابع IsValidLogin هست.
این تابع که در کلاسی به نام Security تعریف شده، در اصل کار بررسی صحت User و Pass وارد شده توسط کاربر را بر عهده داره که User , Pass را دریافت کرده و با User ,Pass مورد نظر برنامه مقایشه می کنه و در صورت صحت مقدار True را بر می گردونه، البته این روش مقایسه را در برنامه یکی از دوستان دیدم که من از اون در اولین برنامم استفاده کردم ولی خب مسلما روش های بهتر و با امنیت بیشتری برای این کار وجود داره.

و اما در مورد connectionInfo: در واقع ConnectionInfo اطلاعات مربوط به Connection از قبیل Password، DataBaseName , UserId را تنظیم می کنه.

5mmmmm
چهارشنبه 25 فروردین 1389, 16:29 عصر
این تابع که در کلاسی به نام Security تعریف شده، در اصل کار بررسی صحت User و Pass وارد شده توسط کاربر را بر عهده داره که User , Pass را دریافت کرده و با User ,Pass مورد نظر برنامه مقایشه می کنه و در صورت صحت مقدار True را بر می گردونه، البته این روش مقایسه را در برنامه یکی از دوستان دیدم که من از اون در اولین برنامم استفاده کردم ولی خب مسلما روش های بهتر و با امنیت بیشتری برای این کار وجود داره.

و اما در مورد connectionInfo: در واقع ConnectionInfo اطلاعات مربوط به Connection از قبیل Password، DataBaseName , UserId را تنظیم می کنه.

1-یوزر و پسورد در خود برنامه ذخیره شده یا در بانک قرار داره؟
2-دیدم که به کانکشن اینفو چه مقادیری داده اید ولی ندیدم از اون استفاده ای بکنید!مثل زیر :


[CODE/]
private void button4_Click(object sender, EventArgs e)
{

ReportDocument reportDocument = new ReportDocument();

ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = ".";
connectionInfo.DatabaseName = "project2";
connectionInfo.UserID = "";
connectionInfo.Password = "";

string reportPath = Application.StartupPath.Remove(Application.Startup Path.Length - 10);
reportPath += @"\CrystalReport1.rpt";
reportDocument.Load(reportPath);
//reportDocument.SetDataSource(ds);
crystalReportViewer1.ReportSource = reportDocument;
reportDocument.SetParameterValue("date", label24.Text);
}
[code]


در مورد ReportPath هم توضیح بدید!چرا این جوری مقدار داده شده؟از مسیر اجرای برنامه 10 کاراکتر حذف کردید تا مسیر اجرای ریپورت را بدست بیارید؟راه بهتری نبود؟

tondar1
جمعه 24 اردیبهشت 1389, 03:06 صبح
سلام
هر چند دیر ولی خسته نباشید من که خیلی استفاده کردم
برای استفاده از فایل aap.config شما تو سورستون کاری انجام ندادین ولی از جستجویی که من تو سایت داشتم و متوجه شدم که باید کارای زیرو انجام داد
اول ساختن فایل app.confg
دوم استفاده از

using System.Configuration;
سوم که شما انجام دادین اضافه کردن System.Configuration به Refrenceهامون
چهارم استفاده از کد زیر به جای رشته اتصال


SqlConnection objconn = new SqlConnection();
objconn.ConnectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString

البته فایل aap.config اینطوری تعریف کردم

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<connectionStrings>
<add name="connectionString"
connectionString="Data Source=servername;Initial Catalog=p2;Integrated Security=True"/>
</connectionStrings>

</configuration>

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

sara.f
جمعه 24 اردیبهشت 1389, 10:58 صبح
سلام
هر چند دیر ولی خسته نباشید من که خیلی استفاده کردم
برای استفاده از فایل aap.config شما تو سورستون کاری انجام ندادین ولی از جستجویی که من تو سایت داشتم و متوجه شدم که باید کارای زیرو انجام داد
اول ساختن فایل app.confg
دوم استفاده از

using System.Configuration;
سوم که شما انجام دادین اضافه کردن System.Configuration به Refrenceهامون
چهارم استفاده از کد زیر به جای رشته اتصال


SqlConnection objconn = new SqlConnection();
objconn.ConnectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString

البته فایل aap.config اینطوری تعریف کردم

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<connectionStrings>
<add name="connectionString"
connectionString="Data Source=servername;Initial Catalog=p2;Integrated Security=True"/>
</connectionStrings>

</configuration>

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

سلام
ممنونم،خوشحالم که مفید بوده.
شما درست می گید؛ تا اونجا که یادمه ، من از app.config استفاده خاصی نکردم توی این برنامه. این اولین برنامه من بود و برای کمک به دوستان در اینجا قرارش دادم، قصد داشتم که این را ارتقاء بدم و نکاتی را که دوستان گفتن در برنامه به کار ببرم، ولی خب به دلیل کارهای دانشگاه تا به امروز فرصت نکردم.
به هر حال امیدوارم که در همین حد هم مشکلات بعضی از دوستان را حل کنه.
پیروز باشید.

نیما حتمی
سه شنبه 01 تیر 1389, 16:21 عصر
یوزر و پسورد این برنامه چیه؟

payman_xxp
پنج شنبه 03 تیر 1389, 10:39 صبح
یوزر و پسورد این برنامه چیه؟

.................................................. ...............................................
admin
1234

zoleikha
جمعه 26 شهریور 1389, 16:28 عصر
از برنامه تون خیلی ممنون
ولی من چطور در عرض چند ساعت می تونم بفهمم که برای کریستال چیکار کردین؟آخه خیلی عجله دارم!

alms22
پنج شنبه 13 آبان 1389, 23:35 عصر
سلام

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

البته اگه زحمتی نیست!

Mohandes2009
چهارشنبه 19 آبان 1389, 08:55 صبح
خوب بو اما سرچش را اینجور نمی گذاشتید بهتر بود:لبخند:

charkhkar
دوشنبه 07 آذر 1390, 12:19 عصر
سلام
ممنون از برنامه خوبتون
من از crystal report در برنامه خودم استفاده کردم ولی شرط query من رو در برنامه لحاظ نمیکنه ؟
ممنون میشم اگه راهنماییم کنید
با تشکر.

saeed_sho
دوشنبه 07 آذر 1390, 18:17 عصر
موقع ادرس دهی به فایل کریستال در reportPath اولش یه @ میزارند اون کارش چیه و یعنی چی؟
ممنونم

سوداگر
دوشنبه 07 آذر 1390, 23:16 عصر
موقع ادرس دهی به فایل کریستال در reportPath اولش یه @ میزارند اون کارش چیه و یعنی چی؟
ممنونم

@ رو قبل از یک رشته به کار می برند تا کاراکتر های داخل اون، به همان صورت، خوانده شوند.
مثلا در سی شارپ برای بکار بردن کاراکتر \ باید \\ را به کار ببریم. برای راحتی کار، از یک علامت @ قبل از رشته استفاده می کنیم مثلا:
بدون @ اینجوریه:
"C:\\Windows\\System32\\1033"
اما اگه از @ استفاده کنیم باید بنویسیم:
@"C:\Windows\System32\1033"

saeed_sho
سه شنبه 08 آذر 1390, 18:29 عصر
کریستال
sample
های نمونه رو کجا میریزه؟
با کریستال نمودار هم میشه درست کرد ؟ اگه بله میدونید چطوری؟
subreport
چیه؟ از اسمش معلومه که زیرمجموعه ی گزارش هستش اما چیه ؟ و کجا بکار میره؟
ببخشید زیاد سؤال پرسیدم
ممنون میشم راهنمایی کنید

niyazi
یک شنبه 19 آذر 1391, 11:44 صبح
کمککککککککککککککککککککککک دوستان
سلام به دنبال کدی هستم که وقتی کاربر LOGIN شدونام کاربر را به همراه خوش امد گویی نمایش بده

amir2244
سه شنبه 19 خرداد 1394, 09:28 صبح
خيلي ممنون از راهنماييتون
عالي بود