如何在asp.net中从datatable添加项目到列表

时间:2014-02-12 06:28:36

标签: c# asp.net

我正在创建web service method,我必须在data-table列表中添加项目。这该怎么做?我在这里粘贴我的代码。我在items.Add(row)中收到错误。

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

有人可以提出任何建议吗?

2 个答案:

答案 0 :(得分:2)

您无法向DataRow添加List<SelectUsers>,您必须将row的值分配给SelectUsers。根据下面的评论,Value取自row["Id"]Text取自row["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错误。

答案 1 :(得分: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);
        }
    }
}

感谢。