2015-01-08 1 views
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"); 

답변

0

당신은 개체의 클래스 메이크 목록 또는 컬렉션

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; } 

그리고 하나의 엔티티에서 코드 아래에 선언하고 사용할 수 행에 대한 그 목록이나 컬렉션에 추가해야합니다.

List<Entity> lstEntity = new List<Entity>(); 
if (dt.Rows.Count > 0) 
      { 
      foreach(Datarow r in dt.Rows){ 
       Entity e= new Entity(); 
       e.Id = r.Field<int>("Id"); 
       e.Username = r.Field<string>("Username"); 
       e.Password = r.Field<string>("Password");     
       e.UserRole = r.Field<string>("UserRole"); 
       lstEntity.Add(e); 
       } 
       return true; 
      } 
+0

@ Amit! 귀하의 답변에 감사드립니다. 이 시나리오에서 ** for 루프를 사용하면 ** 이점이 무엇인지 알고 싶습니다 **. DATA ROW를 사용하는 가장 좋은 방법은 무엇입니까? 설명해 주시겠습니까? – user4221591

+0

시나리오에 따라 다릅니다. 이후의 처리를 위해 쿼리에서 반환 된 모든 행을 원하거나 일반적인 방식 인 UI로 전달하려는 경우 위와 같이 UI가 알고있는 비즈니스 엔터티 또는 엔터티의 루프를 사용하여 모든 데이터를 누적합니다. 사용자 ID와 관련하여 사용자 정보가 고유 할 것이므로 쿼리에 따라 항상 한 행을 반환합니다. 따라서 datarow [0]을 사용하는 것으로 충분합니다. 그러나 하나 이상의 행을 예상 할 때는 이러한 시나리오에서 루프 또는 기타 데이터 채우기 방법이 필요합니다. – Amit

+0

SQL 쿼리는 ApplicationUser의 사용자 이름, 암호 만 선택하십시오. 이 경우 여러 레코드를 가져오고 모든 사용자 정보를 datagrid로 가져 오려면 그리드에 반환되는 datatable을 바인딩하거나 자신의 컬렉션을 채우고 그리드에 바인딩합니다. 반복은 컬렉션을 만드는 방법 중 하나입니다. – Amit

관련 문제