سلام
من کد شمارا امتحان کردم وبه صورت کد زیر در فرم لاگین دراوردم وبرای لاگین مشکلی ندارم
private long SelectPass()
{
long Pass = 0;
Maine_Form m=new Maine_Form();
try
{
SqlCon = new SqlConnection();
SqlCon.ConnectionString = Nezarat.Properties.Settings.Default.Nezarat_dataCo nnectionString;
SqlCon.Open();
SqlCmd = new SqlCommand();
SqlCmd.Connection = SqlCon;
SqlCmd.CommandType = CommandType.Text;
SqlCmd.CommandText = "SELECT UserID, Password FROM Tb_Users WHERE (UserName =@username)";
SqlCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = Cmb_User.SelectedItem.ToString();
SqlDA = new SqlDataAdapter();
SqlDA.SelectCommand = SqlCmd;
SqlCmd.ExecuteNonQuery();
DTable = new DataTable();
SqlDA.Fill(DTable);
if (DTable.Rows.Count > 0)
{
Pass = long.Parse(DTable.Rows[0].ItemArray[1].ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
SqlCon.Close();
}
return Pass;
}
اما کد دوم که در فرم لود پس از لاگین می نویسیم تنها رکور اول جدول را چک میکنه (کاربر اول )واگه با کار بران دیگر وارد شویم این کار انجام نمی شود
private void Accesslevel()
{
byte id = 0;
Frm_Password f = new Frm_Password();
//try
//{
SqlCon = new SqlConnection();
SqlCon.ConnectionString = Nezarat.Properties.Settings.Default.Nezarat_dataCo nnectionString;
SqlCon.Open();
SqlCmd = new SqlCommand();
SqlCmd.Connection = SqlCon;
SqlCmd.CommandType = CommandType.Text;
//SqlCmd.CommandText = SqlCmd.CommandText = "SELECT UserID, Password FROM Tb_Users";// WHERE (UserID =@UserID)";//UserName
SqlCmd.CommandText = "SELECT UserID FROM Tb_Users WHERE (UserID =@UserID)";
SqlCmd.Parameters.Add("@UserID", SqlDbType.TinyInt).Value = AccessID;
AccessID = (byte)SqlCmd.ExecuteScalar();
//SqlCmd.ExecuteNonQuery();
SqlCmd.CommandText = "SELECT lIdRecord,Gozareshat FROM Tb_AccessLevel WHERE(lIdRecord=@lIdRecord)";
SqlCmd.Parameters.Add("@lIdRecord", SqlDbType.TinyInt).Value = AccessID;
SqlDataReader dr = SqlCmd.ExecuteReader();
if (dr.Read())
{
if (dr[1].ToString() == "True")
{
Gozareshat.Enabled = true;
}
else
Gozareshat.Enabled = false;
}
label1.Text = AccessID.ToString();
//}
//catch (Exception ex)
//{
// MessageBox.Show(ex.Message);
//}
//finally
//{
// SqlCon.Close();
//}
}
حا لا میخواهم بدانم در کجا اشتباه کردم وچه نکته ای را فراموش کردم که تنها اطلاعات رکورد اول باز خوانی میشه مگه در موقع لود شدن نباید اطلاعات همان رکود خوانده بشه