PDA

View Full Version : مبتدی: برگشتن -1 در SELECT کردن



vb1249
جمعه 03 اردیبهشت 1395, 15:26 عصر
سلام
من در C#‎‎‎ دارم یک صفحه لاگین می نویسم که یوزر نیم پسورد رو از دیتابیس میگیره این کد :

CommandText = "SELECT [name],[pass] FROM[tbllock].[dbo].[mhb] Where [name] = 'hamid' and [pass]='hamid2'";
ok = sqlmydR.com.ExecuteNonQuery();
MessageBox.Show(ok.ToString());
ولی در صورت درست بودن یعنی بودن hamidو hamid2 بود بازم -1 برمیگردونه ولی در SQL server وقتی اجراش میکنم اروری نمیده .

به چه صورت میشه اطلاعات اولین سطر و فیلدش رو ریخت توی یک تکست باکس مثلا با اون مقایسه کرد ؟ اینم روش خوبیه .

davidrobert
شنبه 04 اردیبهشت 1395, 16:14 عصر
دوست عزیز شما کد لاگین مینویسید ولی این کد ربطی به لاگین نداره از این کد هم شما میتوانید استفاده کنید برای ورود به فرم اصلی اونکی شما نوشتید مربوط ب نشان دادن اطلاعات بر حسب شرط هستش ولی باید این طوری کد نویسی کنید برای لاگین در دیتابیس
public void ValidateLogin(string ViewAccessLogin, string strLogin, string strPassword, string loginColumn, string passColumn)
{
try
{
SqlConnection con = new SqlConnection(DataBase.constring);
string q = "SELECT COUNT(*) FROM " + ViewAccessLogin +
" WHERE " + loginColumn + "=@U_UN_UserName AND " + passColumn +
"=@U_Password;";


SqlCommand cmd = new SqlCommand(q, con);
SqlParameter paraUsername;
paraUsername = new SqlParameter("@U_UN_UserName", SqlDbType.NVarChar, 32);
paraUsername.Value = strLogin;
cmd.Parameters.Add(paraUsername);



//Hash the password
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] hashedDataBytes;
UTF8Encoding encoder = new UTF8Encoding();
hashedDataBytes =
md5Hasher.ComputeHash(encoder.GetBytes(strPassword ));

SqlParameter paramPwd;
paramPwd = new SqlParameter("@U_Password", SqlDbType.Binary, 16);
paramPwd.Value = hashedDataBytes;
cmd.Parameters.Add(paramPwd);

int iResults;
con.Open();
iResults = Convert.ToInt32(cmd.ExecuteScalar().ToString());
con.Close();
if (iResults == 1)
{
Program.User = TxtUserName.Text.ToString();
this.Hide();
Frm_Main fm = new Frm_Main();
fm.ShowDialog();
}
else
{
MessageBoxShow.Show("نام کاربری یا رمز عبور اشتباه می باشد.", "عدم دسترسی",
MessageBoxShow.Buttons.OK, MessageBoxShow.Icons.Warning);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void BtnLogin_Click(object sender, EventArgs e)
{
try
{
if (TxtUserName.Text.Trim() == "") throw new Exception("نام کاربری وارد نشده");
if (TxtPassword.Text.Trim() == "") throw new Exception("پسورد وارد نشده");
ValidateLogin("ViewLoginAccessLevel", TxtUserName.Text.Trim(), TxtPassword.Text.Trim(), "U_UN_UserName", "U_Password");
}
catch (Exception ex)
{
MessageBox.Show("مشکلی پیش آمده" + "\n" + ex.Message);
}
}

vb1249
یک شنبه 12 اردیبهشت 1395, 01:40 صبح
سلام مشکل حل شد .

دوستا سئوال دیگه داشتم اینکه چطوری توی دیتا گرید شرط خودم رو برقرار کنم الان دستور SELECT کرده . من میخوام یک سری موارد خاص SELECT بشن با استفاده از WHERE .

خوب این دستور رو باید کجای دیتاگرید بنویسم !؟؟؟؟

سئوال دومم اینه چطوری میتونم یک سری اطلاعات مثل نام یک شخصی رو از دیتابیس اوردم روی Label نمایش بدم ؟

پیاپیش تشکر