C# 无法在webmethod中循环所有数据库值并在asmx中显示

C# 无法在webmethod中循环所有数据库值并在asmx中显示,c#,web-services,loops,C#,Web Services,Loops,我试图通过web服务中的webmethod循环并显示数据库中的所有值。然后我尝试以asmx格式适当地显示它 public class eCommerce { public string ItemName { get; set; } public string cost { get; set; } } 我试图使用get set来获取相应的数据 下面,我还尝试将.hasRow与while循环一起使用。但是,它只显示并返回数据库中的第一行数据 [WebMethod] public e

我试图通过web服务中的webmethod循环并显示数据库中的所有值。然后我尝试以asmx格式适当地显示它

public class eCommerce
{
    public string ItemName { get; set; }
    public string cost { get; set; }
}
我试图使用get set来获取相应的数据

下面,我还尝试将
.hasRow
while循环一起使用。但是,它只显示并返回数据库中的第一行数据

[WebMethod]
public eCommerce ItemAvailable(string itemcategory)
{
    eCommerce Item = new eCommerce();

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT ItemName, Cost FROM eCommerce Where Category ='"+itemcategory+"'", con);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            Item.ItemName = Convert.ToString(dr["ItemName"]);
            Item.cost = Convert.ToString(dr["Cost"]);
        }
    }
    con.Close();

    return Item;
}

我是否遗漏了任何能够循环并返回数据库中所有值的内容。

while循环正在覆盖每个循环中的
项。看起来您想要返回多个电子商务实例,那么为什么不返回一个列表呢

[WebMethod]
public eCommerce ItemAvailable(string itemcategory)
{
    eCommerce Item = new eCommerce();

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT ItemName, Cost FROM eCommerce Where Category ='"+itemcategory+"'", con);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            Item.ItemName = Convert.ToString(dr["ItemName"]);
            Item.cost = Convert.ToString(dr["Cost"]);
        }
    }
    con.Close();

    return Item;
}
[WebMethod]
public List<eCommerce> ItemAvailable(string itemcategory)
{

    List<eCommerce> allItems = new List<eCommerce>();

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT ItemName, Cost FROM eCommerce Where Category ='"+itemcategory+"'", con);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            item = new eCommerce();
            item.ItemName = Convert.ToString(dr["ItemName"]);
            item.cost = Convert.ToString(dr["Cost"]);

            allItems.add(item);
        }
    }
    con.Close();

    return allItems;
}
[WebMethod]
公共列表项可用(字符串项类别)
{
列表所有项=新列表();
SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“ConnectionString”].ConnectionString);
con.Open();
SqlCommand cmd=new SqlCommand(“选择项目名称,电子商务成本,其中类别=”“+itemcegory+””,con);
SqlDataReader dr=cmd.ExecuteReader();
如果(哈斯罗博士)
{
while(dr.Read())
{
项目=新的电子商务();
item.ItemName=Convert.ToString(dr[“ItemName”]);
item.cost=转换为字符串(dr[“成本]);
所有项目。添加(项目);
}
}
con.Close();
返回allItems;
}