0
UserLogin에 대한 메소드를 정의했습니다. 여기서 저는 DATAROW에 가치를 전달하고 있습니다. 여기 코드입니다 :for 루프를 사용하여 DATAROW에서 값을 전달하십시오.
public class ApplicationUser
{
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string UserRole { get; set; }
public DateTime DateOfRegister { get; set; }
public bool UserLogin(string Username, string Password)
{
string strQuery = string.Format("select Username, Password from ApplicationUser where Username = '{0}' and Password = '{0}'", Username, Password);
DataTable dt = helper.ExecuteDataSet(strQuery).Tables[0];
if (dt.Rows.Count > 0)
{
DataRow ro = dt.Rows[0];
this.Id = ro.Field<int>("Id");
this.Username = ro.Field<string>("Username");
this.Password = ro.Field<string>("Password");
this.UserRole = ro.Field<string>("UserRole");
return true;
}
else
return false;
}
}
내가 루프위한 를 사용하여 아래 작업, 그것은 가능 여부을 할 수 있습니까?
DataRow ro = dt.Rows[0];
this.Id = ro.Field<int>("Id");
this.Username = ro.Field<string>("Username");
this.Password = ro.Field<string>("Password");
this.UserRole = ro.Field<string>("UserRole");
@ Amit! 귀하의 답변에 감사드립니다. 이 시나리오에서 ** for 루프를 사용하면 ** 이점이 무엇인지 알고 싶습니다 **. DATA ROW를 사용하는 가장 좋은 방법은 무엇입니까? 설명해 주시겠습니까? – user4221591
시나리오에 따라 다릅니다. 이후의 처리를 위해 쿼리에서 반환 된 모든 행을 원하거나 일반적인 방식 인 UI로 전달하려는 경우 위와 같이 UI가 알고있는 비즈니스 엔터티 또는 엔터티의 루프를 사용하여 모든 데이터를 누적합니다. 사용자 ID와 관련하여 사용자 정보가 고유 할 것이므로 쿼리에 따라 항상 한 행을 반환합니다. 따라서 datarow [0]을 사용하는 것으로 충분합니다. 그러나 하나 이상의 행을 예상 할 때는 이러한 시나리오에서 루프 또는 기타 데이터 채우기 방법이 필요합니다. – Amit
SQL 쿼리는 ApplicationUser의 사용자 이름, 암호 만 선택하십시오. 이 경우 여러 레코드를 가져오고 모든 사용자 정보를 datagrid로 가져 오려면 그리드에 반환되는 datatable을 바인딩하거나 자신의 컬렉션을 채우고 그리드에 바인딩합니다. 반복은 컬렉션을 만드는 방법 중 하나입니다. – Amit