با سلام به همه ی دوستان و مهندسین عزیز
دوستان من یه کد توی ترای ، کچ نوشتم
کد های توی ترای داره همش اجرا میشه و مشکلی نداره
اما کد های ترای که تموم شد میره قسمت کچ رو هم اجرا میکنه
مشکل کار کجاست؟
ممنونم که راهنمایی میکنید
با سلام به همه ی دوستان و مهندسین عزیز
دوستان من یه کد توی ترای ، کچ نوشتم
کد های توی ترای داره همش اجرا میشه و مشکلی نداره
اما کد های ترای که تموم شد میره قسمت کچ رو هم اجرا میکنه
مشکل کار کجاست؟
ممنونم که راهنمایی میکنید
خب اینجوری نمیشه که قضاوت کرد کدتونو باید بذارین .
اینم کد
DataTable p = new DataTable();
DataTable s = new DataTable();
p = bl.bl.select("select user_pass from users where user_pass=N'" + txt_pass.Text + "'");
s = bl.bl.select("select user_name from users where user_name =N'" + txt_usr.Text + "'");
try
{
if (s.Rows[0]["user_name"].ToString() == txt_usr.Text)
{
if (p.Rows[0]["user_pass"].ToString() == txt_pass.Text)
{
if (bl.bl.select("select user_state from users where user_name=N'" + txt_usr.Text + "'").Rows[0][0].ToString() == "فعال")
{
frm_main.role = (bl.bl.select("select user_role from users where user_name=N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0]["user_role"].ToString());
this.Hide();
frm_main.user_id = Convert.ToInt32(bl.bl.select("select user_id from users where user_name =N'" + txt_usr.Text + "' and user_pass=N'" + txt_pass.Text + "'").Rows[0][0].ToString());
frm_main f = new frm_main();
f.Show();
}
else { MessageBox.Show("نام کاربری غیر فعال شده است"); }
}
}
}
catch { MessageBox.Show("نام کاربری یا رمز عبور اشتباه است"); }
عجیبتر از اون این تیکه کده
ببخشد این کد چیکار میکنه؟
کار لوگین کردن را انجام میده؟
اتفاقاً کد تمیزیه
به جز اینکه در برابر sqlinjection مقاوم نیست
پیشنهاد میکنم از Parameter های sql استفاده کنید و مقادیرشون رو جدا با یک field ه params به method ه select تون بدید
اینطوری نیازی نیست که کدتون رو زیاد تغییر بدید چون declaration ه متودتون تغییر زیادی نمیکنه
اما در مورد ه خطا
در کدام مسیر کد خطا دارید؟
اگر وقتی form ه main بسته میشه خطا دارید باید بگم احتمالاً خطایی شبیه ه cannot unload app domain یا خطاهایی از این دست ه که تا مشخصات ه exception رو نزارید نمیشه کاری کرد
در ضمن امیدوارم property های static ه form ه main تون public نباشن
مشکل دیگش هم اینه که هر کاربری میتونه با رمز بقیه کاربر ها وارد بشه
برای درست کردن این مشکل باید یکی از table ها رو حذف کنید و هر دو field ه user و pass رو در یک سطر fetch کنید
خیلی خیلی ممنونم از جناب فست کد بخاطر راهنمایی موثر
راستش خودم هم تو فکرش بودم
میخواستم طول تکست باکسا رو محدود کنم تا از اینجکشن جلوگیری کنم
و تایمر بذارم تا کسی نتونه بروت فورس کنه
اما این چیزار رو توی کلاس سی ای اچ یاد گرفتم نمیدونم چطور پیاده سازیش کنم!
در مورد اینکه هر کاربر میتونه یا پسورد یکی دیگه لاگین کنه هم دو راه به نظرم میرسه
یکی اینکه موقعی که پسورد میخواد چک بشه یوزر نیم هم جزو شرط ها باشه
دوم هم اینکه از یک استور پروسیجر برای این کار استفاده کنم . و اینکه از پیشنهاد استفاده از متد Select چیزی نفهمدم میشه لطفا یه مثال برام بذارین؟؟(خواهشا)
این اولین استارت برنامه نویسی منه!!!
و اما مشکل توی این تاپیک با ترای کچ
من برنامه رو خط به خط اجرا کردم و دیدم که تا
f.show();
پیش میره و F رو نشون هم میده، اما بعدش میپره توی قسمت کچ و اون مسیج باکس رو اجرا میکنه
به نظرم چون توی قسمت لود فرمی که میخواد باز بشه کارای زیادی کردم و یه مقداری طول میکشه تا بیاد بالا ترای ، کچ فک میکنه که اون دستور failed شده!!
یه همچین چیزی میشه؟
من پروژه رو میزارم یه نگاهی بهش بندازید
خیلی سادس!!! آخه اولین استارت برنامه نویسیمه!!
ممنونم از توجه و کمکتون
http://stor1145.uploaded.net/dl/a5d4...f-759a8993f5f4
آخرین ویرایش به وسیله elderado : چهارشنبه 15 شهریور 1391 در 21:34 عصر
دانلود به من نرسید.http://stor1145.uploaded.net/dl/a5d4...f-759a8993f5f4
You have reached the max. number of possible free downloads for this hour, please try again in an hour or purchase one of our premium products.
lol
این بهترین سایت آپلوده که تا حالا دیدم
اگه سایتی دارید که میتونم توش آپلود کنم بهم بدید
حجمش یه ذره زیاد شده
اینجا آپلود نمیشه
ممنونم
اینم پروژه
http://uplod.ir//project.rar.htm
url رو میزارم برای بقیه ولی تضمینی در uptime نمیدم چون سرورم ممکنه جابجا بشه
http://cavps.dyndns-server.com/elderado.rar
آخرین ویرایش به وسیله FastCode : چهارشنبه 15 شهریور 1391 در 23:53 عصر
آپلود شد
ممنونم
به نام
project.rar
فایل رو نگاه کردم
شما در frm_main_load یک دستور try catch اضافه کن
اون دو تا متغیر بالای فرم رو هم بکن internal به جای پابلیک
Ctrl D Ctrl E
همه ی check ها رو بزن تا همون لحظه ای که خطا میده برنامه break بشه
من به شدت از شما ممنونم دوست عزیز
خیلی لطف کردی
کارم راه افتاد
داداش پروژمو دادم نگا کردی اگه پیشنهادی چیزی داری بهم بگو ممنون میشم
بازم ممنونم ازت بابت جواب این تاپیک