Rezasam1 (31-07-11)
Untitled..jpg
دوستان خوبم سلام و البته آقا آرمین گرامی و محترم؛ سلام. امیدوارم از اذیت هایی که میکنم ناراحت نشده باشید و من رو کمک کنید که بتونم این پروژه رو تمومش کنم.
راستش تصمیم گرفتم قدم به قدم فرمهام رو بذارم و از شما در مورد کدنویسی اون کمک بگیرم. فرم بالا اولین فرم پروژه ی منه!
راستش کدی میخوام که وقتی روی set user زدم در منو؛ برم فرم بعدیم. چی بنویسم برای رفتن به فرم بعدیم؟
این هم فرم بعدیم هست!
Untitled1..jpg
البته من یه tooltip در textbox1 قرار دادم که توضیح میده، لطفا نام کاربری و رمز خود رو به صورت 8 رقم و با حروف و اعداد تعریف نمایید. (یعنی میخوام قرار بدم؛ اما نمی دونم این متن رو کجای tooltip می نویسند که قبل از نوشتن متن در تکس باکس نمایش داده بشه!) در این مورد یه کد میخوام.
در مورد کدنویسی برای کلیدهایی پایین؛ ok cancel next و preview هم راهنمایی میخوام، چی بنویسم که وقتی کنسل زد، اون یوزر و پسورد پاک شده باشه؟
Rezasam1 (31-07-11)
یا وقتی ok زدم؛ اطلاعات ذخیره شده باشه؟
فرم بعدیم مربوط به تغییر و ویراش یوزر و پسورد هست؛ لطفا چه کدی بنویسم که وقتی applay رو زد؛ ادمین! یوزر و پسورد قدیم حذف شده باشه و به جای اون new username و پس قرار گرفته باشه؟این هم شکل فرم اون!
2..jpg
فرم بعدیم هم فرم login هست که وقتی ادمین در منوی اصلیم در قسمت view، login رو بزنه باز میشه و میتونه با یوزر و پسورد تعریف شده وارد بشه!
فکر کنم اون کدی که شما در مورد login بهم دادید اینجا به دردم بخوره!
Untitled3..jpg منتها چون کدنویسی قسمت های قبلی رو انجام ندادم، میخوام بعد از اون قسمت ها بیام سراغ این! اما من اینجا میخوام login رو که زد بره وارد این صفحه بشه! نگاه کنید!
Untitled4..jpg
اینجا هم میخوام در قسمت کشویی، فقط رکورد نام واحد از جدول واحد رو قرار بدم که توی لیست نمایش داده بشه! باید چی کار کنم؟
لطفا به راهنمایی های ارزشمند شما به صورت گام به گام نیاز دارم! ممنون میشم که کمکم کنید!
با تشکر
Rezasam1 (31-07-11)
آقا آرمین راستش من طبق اون لینکی که برام گذاشته بودید، یه جدول login درست کردم توی اکسس، بعد هم یه دیتا گرید ویو قرار دادم که به صورت ویزاردی کانکشن استرینگ رو درست کردم؛ منتها در اون قسمت؛ user , pass تعیین میشه که من یوزر رو همون admin قرار دادم و رمز رو هم خودم دادم. بعد از تست کانکشنم، دو تا گزینه yes , no البته با توضیحات داره که من گزینه ی yes رو زدم. پایین برای من آورد که
provider=microsoft.jet.oledb.4.0; ... تا آخر جمله که حتی اینکه پسوردم چیه رو برام نوشت! بعد هم سیو کردم کانکشن رو و تمام.
حالا سوالم اینه که من در فرم login ام وقتی بخوام کد نویسی کنم باید دقیقا کجا این کدها رو قرار بدم؟
یعنی در حالت click بنویسم یا در حالت load ؟ توی لینک داده شده مشخص نیست که در چه حالتی این کدها رو قرار داده؟
لطفا راهنماییم کنید.
Rezasam1 (31-07-11)
- براي رفتن به فرم جديد مثلا" از Form1 به Form2 بايد در فرم اول يك متغير از نوع فرم دوم تعريف كنيد و سپس با دستور Show يا ShowDialog مربوط به اين متغير وارد فرم دوم بشيد.
- براي Tooltip مي تونيد يك كامپوننت Tooltip رو روي فرم مورد نظر قرار بديد و بعد به طور خودكار يه خاصيت Tooltip به كنترل هاي textBox اضافه مي شه (در پنجره ي Properties) كه مي تونيد با متن خودتون رو در اون وارد كنيد.
- براي ويرايش نام كاربري بايد از دستور SQL به نام UPDATE استفاده كنيد.
- براي وارد كردن مقادير يك جدول در يك ComboBox بايد با دستور SQL به نام SELECT داده ها رو بخونيد و تك تك با فرمان Add مربوط به آيتم هاي ComboBox اين مقادير رو اضافه كنيد.
- در مورد سوال آرخرتون...مي تونيد اون رشته رو هم در رويداد FormLoad قرار بديد و هم ButtonClick . كه فعلا" بهتره كه اون رو در رويداد كليك دكمه هاتون قرار بديد.
تمام موارد بالا رو مي تونيد در پروژه ي پيوست شده در همين پست مشاهده كنيد كه اميدوارم كمكتون كنه. متاسفانه تنها فرمان UPDATE پايگاه داده ي اون مشكل داره (در VB.NET به درستي كار مي كرد نمي دونم چرا در C# كار نمي كنه شايد به دليل خود فايل MDB باشه.)
موفق باشيد
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
delroya (30-07-11), M A H R A D (27-07-11), P A R H A M (27-07-11), Rezasam1 (31-07-11)
آقا آرمین بی نهایت ممنونم از شما.
به خاطر پاسخ های عالی تون و زحمتی که میکشید.
راستش من توی فرم ورود ادمین؛ کدهایی که در فرم اول فایل زیپ شده بود رو نوشتم!
منتها با خطاهای زیر مواجه شدم.
لطفا در مورد رفع این خطاها کمکم کنید!
Error 1 'jafariamar.MD5' does not contain a definition for 'ComputeHash' and no extension method 'ComputeHash' accepting a first argument of type 'jafariamar.MD5' could be found (are you missing a using directive or an assembly reference?)
Error 2 'jafariamar.MD5' does not contain a definition for 'create'
Error 3 The name 'md5Hash' does not exist in the current context
Error 4 'jafariamar.MD5': type used in a using statement must be implicitly convertible to 'System.IDisposable'
ممنون میشم کمکم کنید که من حداقل اجرای یه فرمم رو ببینم و پیش برم.
و یه سوال دیگه اینکه آیا در زمان اجرا وقتی user رو میخوام بزنم که همون ادمین میزنم که در جدول لاگینم جزو جداول پایگاهم هست! اما در قسمت رمز باید چی بزنم؟
آیا اون رو هم باید یه رمزی که در فیلد پسورد جدول لاگینم پر کردم رو در زمان اجرا برای بار اول بزنم؟
Rezasam1 (31-07-11)
خواهش مي كنم دوست گرامي...
من فكر مي كنم كه شما كلاس رمز نگاري رو اصلا" وارد برنامه ي خودتون نكرديد. استفاده از اين كلاس اجباري نيست اما باعث حفظ امنيت گذرواژه ها ميشه كه من طبق عادت از اون استفاده مي كنم. اگه تمايل داشتيد مي تونم اين كلاس رو از پروژه حذف كنم.
تمام خطا هاي شما هم مربوط به همين بخش رمزنگاري هستش. فكر مي كنم اگه كلاس زير را وارد كنيد:
بعد تابع زير رو به صورت استاتيك تعريف كنيد:کد:using System.Security.Cryptography;
کد:static string GetMd5Hash(MD5 md5Hash, string input) { // Convert the input string to a byte array and compute the hash. byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); }مشكل رفع بشه. همچنين براي استفاده از تابع در هر روال بايد كد زير رو در روال قرار بديد:
اما در مورد بخش دوم سوالتون بايد عرض كنم كه من به طور پيش فرض يه كاربر تعريف كردم با مشخصات زير:کد:using (MD5 md5Hash = MD5.Create())
username: admin
password: admin
شما مي تونيد اول با اين كاربر وارد شيد. سپس با تعريف كاربر جديد، در مراحل بعد قادر خواهيد بود با كاربر تعريف شده هم وارد بشيد؛ البته متاسفانه همون جور كه گفته بودم هنوز فرمان اين بخش مشكل داره كه در اولين فرصت سعي مي كنم يه بار ديگه بررسيش كنم.
اين نكته رو هم اضافه كنم كه اگه بانك UsersDB رو باز كنيد متوجه ميشد كه نام كاربري ها در اون موجوده اما گذرواژه ها به شكل كد شده درون بانك ذخيره ميشه كه اين امر سبب ميشه كه كسي نتونه با داشتن محتويات بانك مذكور رمز عبور رو كشف كنه.
موفق باشيد
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
delroya (31-07-11), M A H R A D (30-07-11), Rezasam1 (31-07-11)
آقا آرمین گرامی سلام
ممنونم از محبت های بی دریغتون!
راستش من همه ی اون کدها بعلاوه ی کلاس رمزنگاری رو هم تعریف کرده بودم؛ اما بازم پیغام میداد؛ اما به هر حال مشکلم از بابت برنامه نویسش رفع شد و دیگه پیغامی دریافت نکردم. اما حالا وقتی میخوام برنامه رو اجرا کنم؛ وقتی برنامه ی شما رو اجرا می کنم، این پیغام رو میده!
110..jpgاما وقتی برنامه ی خودم رو اجرا می کنم؛ اصلا قسمت رمز اون به صورت مخفی ظاهر نمیشه!
ببینید!
111..jpgلطفا راهنماییم بفرمایید.
Rezasam1 (31-07-11)
دوست گرامي، به دليل كوچك بودن عكس ها اصلا" مقدور نيست كه بشه متن خطا رو قرائت كرد؛ پس لطفا" خود متن خطا را تايپ كنيد تا مشكل بررسي بشه.
اما دليل اينكه گذرواژه ي دورن تكست باكس شما به صورت ستاره نمايش داده نميشه اينه كه خاصيت UserSystemPasswordChar تكست باكس شما در حالت False قرار داره. با انتخاب تكست باكس مربوط به گذرواژه و ست كردن اين خاصيت به مقدار True از طريق پنجره ي Properties مشكل رفع ميشه.
موفق باشيد
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
|
سلام و عرض ادب خدمت شما و سپاس بخاطر کمک های فوق العاده تون!
راستش در مورد پیغام ها؛ وقتی پروژه ی شما رو اجرا می کنم پیغام زیر رو بهم میده!
The ' microsoft.jet.oledb.4.0' provider is not registered on the local machine.
در مورد برنامه ی خودم هم وقتی یوزر و پسوردم رو؛ admin می زنم پیغام
database erorr: Not a Valid file name.
و یه سوال؟ در فیلد پسورد جدول لاگین دیتابیسم چی باید بنویسم؟ نیازی به پرکردن این فیلد هست؟ مثل فیلد یوزرنیم که ادمین نوشته شده درون آن؟
و یه سوال دیگه !
برای اینکه اجرای تنها همون صفحه ای رو که دارم باهاش کار میکنم ببینم نه؛ اجرای کل صفحات رو، باید چی کار کنم؟
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks