2014-02-12 29 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); 
     } 
    } 
} 

谢谢。

相关问题