【发布时间】:2013-05-16 19:22:31
【问题描述】:
我想根据从 wcf 服务中检索到的数据绑定我的 gridview。但它只显示 gridview 中的最后一行数据,而不是全部显示。
这是我的 WCF:
try
{
DSCustomer dscat = new DSCustomer();
//input is EmpUserID
cmd.Parameters.AddWithValue("@myuser", id);
cmd.CommandText = "mystoredproc";
List<DSCustomer> lst = new List<DSCustomer>();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
dscat.MyEmpID = Convert.ToInt32(dr["Emp"]);
dscat.MyEmpName = dr["EmpName"].ToString();
dscat.MyUnitName = dr["UnitName"].ToString();
dscat.MyUnitNumber = Convert.ToInt32(dr["Unit"]);
dscat.MyRole = dr["Role"].ToString();
dscat.MySurveyStatus = dr["SurveyStatus"].ToString();
//Add all the returns in to the list from back-end
lst.Add(dscat);
}
//returns to the list
return lst;
}
这是 DScustomer
public class DSCustomer
{
//Created properties based on the count of the data that we want to retrieve
public int MyEmpID { get; set; }
public string MyEmpName { get; set; }
public string MyUnitName { get; set; }
public int MyUnitNumber { get; set; }
public string MyRole { get; set; }
public string MySurveyStatus { get; set; }
}
还有我的 default.aspx:
protected void Button1_Click(object sender, EventArgs e)
{
MyServiceClient client = new MyServiceClient();
Customer cust = new Customer();
cust = client.getCategori(tbEmpID.Text);
var list = new List<Customer> { cust };
GridView1.DataSource=list;
GridView1.DataBind();
}
【问题讨论】:
-
愚蠢的问题。这是服务的真实代码吗?我在 while 循环中看不到任何地方实例化 dscat 的新实例。所以这些值每次都会被覆盖。
-
请不要这样。只是分享你的答案,我没有分享这个问题来听到你的声音。
-
@Abdullah WCF 方法签名是什么,
client.getCategori返回类型是什么? -
我并没有粗鲁,有时人们发布的内容接近实际代码,但实际上并不是真正的代码。 “愚蠢的问题”指的是我的问题,而不是你的问题。