PDA

View Full Version : سوال: مشکل در لاگین کردن در برنامه



jprogramer
سه شنبه 20 دی 1390, 11:32 صبح
با سلام
ببخشید شاید سوالم تکراری باشه اما تو سایت خیلی گشتم اون چیزی رو که میخواستم پیدا نکردم فقط یه نمونه پیدا کردم اما متاسفانه با vb نوشته شده بود.
سوالم در مورد مشکل لاگین شده در فرم لاگین هست

من دیتابیس SQL دارم و اسم جدول کاربرانم User هست ...
جدول هم شامل دو فیلد karbarname و pass
دوتا فرم هم توی برنامه دارم . فرم اولی فرم لاگین و فرم دومی main form ام هستش ...
حالا میخوام بدونم چگونه میتونم اول از همه بیام چک کنم یوزر و پسورد وارد شده در فرم 1 ، در دیتابیس هست یا نه ( اطلاعات وارد شده صحیح است با خیر ) ، اگر صحیح نبود که اررور بده ، اگر صحیح بود وارد فرم اصلی بشه
من کدی که خودم نوشتم واستون گذاشتم که همش پیغام میده یوزرنیم و پسورد اشتباهه. نمیدونم مشکلش کجاست. اگه کدی در این مورد دارین بدین ممنون میشم البته با #c.
SqlConnection con = new SqlConnection(strcon);
SqlCommand com = new SqlCommand("select pass from karbar where karbarname (;like('" + txtkarbar.Text + "')", con
(if (con.State == ConnectionState.Open
;()con.Close
; ()con.Open
;() SqlDataReader dr = com.ExecuteReader
(()while (dr.Read
{
;()label_pass.Text = dr[1].ToString
}
( if (label_pass.Text == txtpass.Text
{
; () Formkala objkala = new Formkala
;(objkala.ShowDialog(this
else
MessageBox.Show("نام کاربری یا رمز ورود نادرست می باشد");

بانک اطلاعاتی sql هستش
ممنونم اگه کمکم کنین

Babak-Magic
سه شنبه 20 دی 1390, 11:41 صبح
درود
میتونم بپرسم چرا از like استفاده کردین؟
این کد من را مشاهده کنین
public int LoginUser(string user, string pass)
{
cmd.Connection = con;
string sql = "select count(*) from users where myuser='" + user + "' and mypass='" + pass + "'";
cmd.CommandText = sql;
return int.Parse(cmd.ExecuteScalar().ToString());
}

jprogramer
سه شنبه 20 دی 1390, 11:55 صبح
سلام
فکر کردم شاید کار = رو انجام بده
دقیقا نمیدونم دستوراتی رو که نوشتین دقیقا کجای کد بایست جایگزین کنم ممنون میشم اگه کاملترش بکنین

Babak-Magic
سه شنبه 20 دی 1390, 12:25 عصر
این نمونه فکر کنم برای شما مناسب باشه
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Dblogin.mdf;Integrated Security=True;User Instance=True");
con.Open();
string sql = "select count(*) from users where myuser='{0}' and mypass='{1}'";
sql = string.Format(sql, txtuser.Text, txtpass.Text);
SqlCommand cmd = new SqlCommand(sql, con);
int result = int.Parse(cmd.ExecuteScalar().ToString());
if (result > 0)
{
MessageBox.Show("Login Succsefull");
con.Close();
}
else
{
MessageBox.Show("Invalid Login");
con.Close();
}

jprogramer
سه شنبه 20 دی 1390, 12:38 عصر
بابا ایول داری مشکلم حل شد .دستت درد نکنه اگه میشه واسه اخرین سوال این دوخط رو واسم توضیح بدین ممنون میشم
select count(*) from users where myuser='{0}' and mypass='{1}'";
sql = string.Format(sql, txtuser.Text, txtpass.Text);

Babak-Magic
سه شنبه 20 دی 1390, 15:43 عصر
خواهش میکنم
در این خط
تمامیه رکوردایی که در تیبل وجود داره خوانده و شمارش میشه که شرط هم یوزر و هم پسورد رو داشته باشه
که 2 مقدار '{0}' و '{1}' در انها باید ریخته بشه
در خط بعدی ما query خودمونو فرمت میکنیم و مقدار یوزرنیم میشینه توی '{0}' و مقدار پسورد میشینه توی '{1}'