인스턴트 메신저와 메신저 정말 벽에 내 머리에 분발에 간다 나는 사용자가 거기에 입력하는 로깅 페이지가 사용자 이름과 비밀 번호를 클릭하고 그들이 이것을 누르면 로그인을 클릭하십시오 함수는 모든 사용자 세부 정보를 얻으려면 호출됩니다. 예를 들어 firstname surname 전자 메일 계정 유형 Examtaken 등은 "Get; Set;"을 설정하려고합니다. 속성 그래서 내가 그들을 홈 페이지에서 사용할 수 있지만 내게 알려지지 않은 몇 가지 바보 같은 이유로 그 작동하지! 사용자가 클릭이문제 설정과 함께 C#
public class ExamMethods
{
public int UserID { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public int AccountType { get; set; }
public bool ExamTaken { get; set; }
private enum Datafield
{
UserID,
FirstName,
Surname,
Email,
AccountType,
ExamTaken,
}
public Hashtable CheckLogin(Hashtable Usercredentials)
{
try
{
SqlConnection Connection = new SQLAccess().CreateConnection();
SqlCommand Command = new SqlCommand("GetUserDetails", Connection);
Command.CommandType = System.Data.CommandType.StoredProcedure;
foreach (DictionaryEntry SpParameter in Usercredentials)
{
Command.Parameters.Add(new SqlParameter(SpParameter.Key.ToString(), SpParameter.Value.ToString()));
}
SqlDataReader da = Command.ExecuteReader();
while (da.Read())
{
Details.Add("UserID", da["UserID"]);
UserID = (da.IsDBNull((int)Datafield.UserID)) ? 0 : da.GetInt32((int)Datafield.UserID);
Details.Add("FirstName", da["FirstName"]);
FirstName = (da.IsDBNull((int)Datafield.FirstName)) ? "" : da.GetString((int)Datafield.FirstName);
Details.Add("Surname", da["Surname"]);
Surname = (da.IsDBNull((int)Datafield.Surname)) ? "" : da.GetString((int)Datafield.Surname);
//Details.Add("AccountType", da["AccountType"]);
//AccountType = (da.IsDBNull((int)Datafield.AccountType)) ? 0 : da.GetInt32((int)Datafield.AccountType);
//Details.Add("ExamTaken", da["ExamTaken"]);
//ExamTaken = (da.IsDBNull((int)Datafield.ExamTaken)) ? false : da.GetBoolean((int)Datafield.ExamTaken);
}
Connection.Close();
da.Close();
return Details;
}
catch
{
Console.WriteLine("Error Checking Login Details");
return Details;
}
}
}
로그인 할 때 debuggin 때 해시 테이블 및 가져 오기 설정 방법에 값을 할당 그동안 (da.read) 메신저에 위에서 볼 수 있듯이 당신은 호출되는 방법을 볼 수 아래로 나는 값을 볼 수 있습니다! 그리고 100 %이 값은 널이거나 공란이 아닙니다.
코드가 모두 로그인 페이지로 되돌아갑니다. 그러면 모두 괜찮 으면 사용자가 시험을 볼 수있는 홈 페이지로 응답하지만, 페이지에서는 응답합니다. home.aspx의로드 나는 사용자 이름과 함께 popualte하기를 원하는 레이블을 가지고 있으므로 ExamMethods 클래스의 null 속성을 참조한다. 어떻게 가능할까요? 내가 뭘 놓치고 있니? 이 내가이 (가) 설정 방법은 아무것도 얻을 홈 페이지로 로그인 페이지에서 reponse.redirect를 사용했기 때문에 뒤의 home.aspx 페이지
public partial class Home : System.Web.UI.Page
{
Hashtable UpdateUser = new Hashtable();
protected void Page_Load(object sender, EventArgs e)
{
Methods.ExamMethods obj_UserDetails = new Methods.ExamMethods();
if (Request.QueryString["uid"] == null)
{
Response.Redirect("Login.aspx");
}
else
lblUserName.Text = obj_UserDetails.FirstName;
}
의 코드는 그것을이다? 또는 나는 어리 석고 넘어서 무언가를 보았다 또한 새로운 C#에 이렇게 나에 게 베어드십시오, 이것에 어떤 도움든지 높게 평가 될 것입니다. 감사합니다.
암의 데이터를 필요로 할 때 당신이 할 수 있습니까? 당신이 요구하는 방법을 부르지 않을 때 어떤 일이 잘못 될지 말하기는 어렵습니다. –