PDA

View Full Version : login



hafez1
پنج شنبه 21 آذر 1392, 09:02 صبح
سلام دوستان.
من یه سری جدول توی اس کیو ال ساختم بعد بع سی شارپ وصل شدم و دارم کد هاش رو اونجا وارد میکنم.
سیستم من سیستم انتخاب واحد دانشجویان هست.
دانشجو برای ورود شماره دانشجویی و رمزش رو وارد می کنه و چک میشه که اگه درست بود وارد بشه و بتونه انتخاب واحد کنه.
کد login شدنم اینه:


private void login_Click(object sender, EventArgs e)
{
SqlConnection connect = new SqlConnection();
SqlCommand command = new SqlCommand();
SqlDataReader reader;


connect.ConnectionString = "Data Source=MONIRE-PC; Initial Catalog=faculty;"
+ "Integrated Security=SSPI";
command.Connection = connect;
command.CommandText = "select sid,password from security_s where sid=" +sid.Text+ " and password=" +password.Text;
connect.Open();
reader = command.ExecuteReader();
if (reader.HasRows == true)
MessageBox.Show("password is correct ");
else
MessageBox.Show("id or passwprd is wrong");

}

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

ania123
شنبه 30 آذر 1392, 00:30 صبح
برای بررسی درست بودن رمز، نام کاربری رو به دیتابیس بده و رمز رو بگیر. بعد رمز رو با مقدار وارد شده مقایسه کن. اگه مساوی بود اجازه ورود بده!
یه کاری مثل این:



command.CommandText = "select password from security_s where sid=" +sid.Text;
connect.Open();
reader = command.ExecuteReader();
string pass="-";
while (reader.Read())
{
pass = reader.GetValue(0).ToString();
}

if (pass == "-")
MessageBox.Show("id is wrong");
else if (pass != password.Text)
MessageBox.Show("password is correct ");
else if (pass == password.Text)
MessageBox.Show("id or passwprd is wrong");