2014-02-12 32 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'類的屬性名稱,您不能將'DataRow'添加到列表' – ekad

回答

2

您不能將DataRow添加到List<SelectUsers>,您必須將值從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; 

,你應該移到return items;if (dtAssignTo != null && dtAssignTo.Rows.Count > 0)塊,以避免not all code paths return a value錯誤。 ();

+0

Thnaks ...但它又在GetUsers()方法中顯示錯誤....錯誤是GetUser()方法 - 不是所有代碼路徑都返回一個值。 – Madhu

+0

什麼是錯誤?你能告訴我'row'的列名和'SelectUsers'會採用哪些列嗎?我只假定列名是'Value'和'Text'。 – ekad

+0

Okie ..在「價值」和「文本」我們必須把列名稱。謝謝 – Madhu

0

public static List GetUsers() { List items = new List();

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

謝謝。

相關問題