我正在创建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; }
}
有人可以提出任何建议吗?
答案 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);
}
}
}
感谢。