ورود

View Full Version : مشكل در Login



royaj111111
جمعه 14 تیر 1387, 23:15 عصر
با سلام من فرم Login ايي درست كردم كه مي خوام هر بار كه كاربر UserName وPassWord ش را زد اولاً كل اون Table را جستجو كنه و اگر نبود پيغام خطا بده ولي هر كاري مي كنم جواب نمي ده ، ممنون مي شم اگه كسي كمكم كنه.
اين هم كد هايي كه نوشتم


;()sqlconnection cn=new sqlconection
cn.conectionstring=....
sqlcommand Query=new sqlcommand("select * from User_tb")l
Query.sqlcommandtext="User_Select";
Query.sqlcommandtype=commandtype.storedprocedue;
Query.conection=cn;
cn.open();
sqldatareader read=Query.executereader();
while(read.Read())
if("UserName"!=txb_User.text)
پيغام خطا
.


.
.

اين كد جواب نميده

yasercomeng
شنبه 15 تیر 1387, 00:06 صبح
اصلا نيازي به اين كارا نيست تويه همون خط اول اين كارو كن:

SqlCommand Command=new SqlCommand(“select *from yourtable where username=’”+UserNameTextBox.Text+”’”);
SqlReader Reader=Command.ExecuteReader();
If(Reader.Read())
//something you do here
Else
//oops.Error this username not exist.


***ویرایش شده توسط مدیر***

teshnehab
پنج شنبه 10 مرداد 1387, 10:16 صبح
سلام
من همين مورد را با اکسس مي خوام انجام بدم ولي مشکل داره لطفا کمک کنيد.



OleDbConnection connection = new OleDbConnection();
OleDbCommand command = new OleDbCommand();
OleDbDataAdapter DataAdapter1 = new OleDbDataAdapter();
DataSet DataSet1 = new DataSet();
connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\saeed\My Documents\login.mdb";
connection.Open();


command.CommandText = "Select * from login where username='" + txtus.Text + "'and password='" + txtpw.Text + "'";
command.Connection = connection;
DataAdapter1.SelectCommand = command;

OleDbDataReader dr=command .ExecuteReader ();
if (dr.Read())
{
Form2 a = new Form2();
a.Show();
}
else
{
MessageBox.Show ("Your User & Password is not valid","Error",
MessageBoxButtons .OKCancel ,
MessageBoxIcon .Information ,
MessageBoxDefaultButton.Button1);
}

pars.engineer
پنج شنبه 10 مرداد 1387, 10:59 صبح
براي چك كردن در SQL :



objCommand =

newSqlCommand("SELECT count(*) FROM tblLogin " +

"WHERE lgn_userName='" + txtUserName.Text + "' AND lgn_password='" + txtpass.Text+ "'", objConnection);
int intCorrectPass = 0;


objConnection.Open();
intCorrectPass = (int)objCommand.ExecuteScalar();
objConnection.Close();





if (intCorrectPass==1)
{
MessageBox("Correct");
}
else
MessageBox("InCorrect");



دستور





intCorrectPass = (int)objCommand.ExecuteScalar();


يك مقدار صحيح بر مي گرداند كه برابر است با تعداد ركوردهايي شرط را بر قرار مي كنند. يعني هنگامي كه UserName و Password صحيح باشد مقدار 1 و در غير اينصورت مقدار 0 را بر مي گرداند.





من همين مورد را با اکسس مي خوام انجام بدم ولي مشکل داره لطفا کمک کنيد.


دستور شما مشكلي ندارد و به درستي عمل مي كند، البته شما نيازي به DataAdapter نداريد.
به هر حال براي راهنمايي بيشتر بهتر است متن خطا را هم بگذاريد.


در هر دو مورد SQL و Access بهتر است Password را هش كنيد در غير اينصورت هيچ گونه امنيتي نداريد.

رضا جاسبی
جمعه 11 مرداد 1387, 01:07 صبح
من فکر می کنم بهتره با UserName از دیتا بیس مقدار password رو بگیرین بعد با مقدار وارد شده مقایسه کنید. حسنی که این روش داره اینه که می تونین بین Username اشتباه و password اشتباه تفاوت بذارین.
یک نمونه فرم Login رو می ذارم که باید Connection String , Select Command رو خودتون درست کنید. البته Password رو plain و بدون رمزگذاری دارم که منطقا بد نیست Encode بشه.