2014-02-12 4 views
2

web service method을 작성 중입니다. 여기에 목록에 항목을 추가해야합니다 (data-table). 이 작업을 수행하는 방법? 여기에 내 코드를 붙여 넣습니다. items.Add(row)에 오류가 발생했습니다.데이터 테이블의 항목을 asp.net의 목록에 추가하는 방법

[System.Web.Services.WebMethod] 
public static List<SelectUsers> GetUsers() 
{ 
    List<SelectUsers> items = new List<SelectUsers>(); 

    DataTable DetailsTbl = new DataTable(); 
    int gimId = 0; 
    if (DetailsTbl.Rows[0]["RwId"] != "") 
    { 
     gimId = Convert.ToInt32(DetailsTbl.Rows[0]["RwId"]); 

    } 
    DataTable dtAssignTo = SLAFacadeBLL.GetGIMIncidentUsers(gimId); 
    if (dtAssignTo != null && dtAssignTo.Rows.Count > 0) 
    { 
     foreach (DataRow row in dtAssignTo.Rows) 
     { 
      items.Add(row); 
     } 
     return items; 
    }     
} 

SelectUsers.cs :

public class SelectUsers 
{ 
    public string Value { get; set; } 
    public string Text { get; set; } 
} 

사람이 어떤 제안을 줄 수 있습니까?

+0

당신은'SelectUsers' 클래스의 코드를 추가 할 수 있습니까? – ekad

+0

이것은 클래스 파일 만 가져 오기 및 설정하는 메서드입니다. – Madhu

+0

알지만, SelectUsers 클래스의 속성 이름을 알아야합니다. 이제 List – ekad

답변

2

List<SelectUsers>DataRow을 추가 할 수 없으므로 row의 값을 SelectUsers에 할당해야합니다. 아래의 의견에 따라, Valuerow["Id"]에서 촬영되고 Textrow["Name"]에서 가져온 것입니다, 그래서이 코드는

if (dtAssignTo != null && dtAssignTo.Rows.Count > 0) 
{ 
    foreach (DataRow row in dtAssignTo.Rows) 
    { 
     items.Add(new SelectUsers { Value = row["Id"].ToString(), Text = row["Name"].ToString() }); 
    } 
} 
return items; 

를 작동해야하고 not all code paths return a value 오류를 방지하기 위해 if (dtAssignTo != null && dtAssignTo.Rows.Count > 0) 블록의 외부로 return items;를 이동해야합니다.

+0

Thnaks ... 그러나 GetUsers() 메서드에서 오류가 다시 나타납니다. 오류는 GetUser() 메서드입니다. 모든 코드 경로가 값을 반환하지 않습니다. – Madhu

+0

무엇이 오류입니까? 'Row'의 열 이름과'SelectUsers'에 대해 어떤 열을 가져올 수 있습니까? 나는 단지 열 이름이'Value'와'Text'라고 가정하고 있습니다. – ekad

+0

Okie .. "Value"와 "Text"의 palce에서 우리는 열 이름을 넣어야합니다. 감사합니다. – Madhu

0

public static List GetUsers ( ) { 목록 항목 = 새 목록();

DataTable DetailsTbl = new DataTable(); 
    int gimId = 0; 
    if (DetailsTbl.Rows[0]["RwId"] != "") 
    { 
     gimId = Convert.ToInt32(DetailsTbl.Rows[0]["RwId"]); 

    } 
    DataTable dtAssignTo = SLAFacadeBLL.GetGIMIncidentUsers(gimId); 
    if (dtAssignTo != null && dtAssignTo.Rows.Count > 0) 
    { 

     foreach (DataRow row in dtAssignTo.Rows) 
     { 
      SelectUsers selectuser = new SelectUsers(); 
      selectuser.Value = row["Value"].ToString(); // row["column name in the datatable"].ToString(); 
      selectuser.Text = row["Text "].ToString(); // row["column name in the datatable"].ToString(); 
      items.Add(selectuser); 
     } 
    } 
} 

감사합니다.

관련 문제