我尝试提取一些数据并将其插入到gridview中。但我必须做错事,因为我只能选择一个列。如果我尝试同时获取名字和姓氏,那么它们将被插入到gridview中的相同td中。
到目前为止的方法是:
public string[] ShowName()
{
LinqToEbuboo_20DataContext db = new LinqToEbuboo_20DataContext();
var myusers = from u in db.db_users
where u.uid > 13
select u.firstname;
return myusers.ToArray();
}
我对C#和LINQ(以及网格视图)都很不熟悉,所以这可能是一个相当简单的问题。
它是这样构建的:
1) aspx (frontend)
2) webservice
3) C# (business logic)
4) database
此处发布的方法位于Business Layer中,将从webservive调用,该结果将结果返回到前端,结果将绑定到gridview,如下所示:
GridView1.DataSource = s.showemail();
GridView1.DataBind();
----------(原始问题的结尾)--------------------
对答案的跟进: 这就是我现在基于输入构建的内容。它仍然无法正常工作。从我尝试为gridview设置数据源的aspx中将显示错误。需要引用的东西。但是当试图创建它时,我不能因为引用中的循环......
user.cs
namespace Ebuboo
{
public class User
{
public PersonName[] ListStrangers()
{
LinqToEbuboo_20DataContext db = new LinqToEbuboo_20DataContext();
var myusers = from u in db.db_users
where u.uid > 12
select new PersonName { FirstName = u.firstname, LastName = u.lastname };
return myusers.ToArray();
}
}
}
public class PersonName
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
从Web服务调用ListStrangers():
[WebMethod]
public PersonName[] ws_listUsers()
{
User u = new User();
return u.ListStrangers();
}
从尝试将结果绑定到gridview的aspx调用web服务:
// create instance of webservice
Ebuboo_WS.Service1 s = new Ebuboo_WS.Service1();
// Bind and output result in Gridview
GvListUsers.DataSource = s.ws_listUsers();
GvListUsers.DataBind();
溴。安德斯
答案 0 :(得分:1)
您无法从函数返回anonymous type,因此您无法以这种方式获得多个列。
您需要执行以下操作:创建一个包含查询结果的类型(多列),以便您可以从函数返回它们。
public PersonName[] ShowName()
{
LinqToEbuboo_20DataContext db = new LinqToEbuboo_20DataContext();
var myusers = from u in db.db_users
where u.uid > 13
select new PersonName { FirstName = u.firstname, LastName = u.lastname };
return myusers.ToArray();
}
public class PersonName {
public string FirstName { get; set; };
public string LastName { get; set; };
}
答案 1 :(得分:0)
尝试在查询中创建匿名类型:
LinqToEbuboo_20DataContext db = new LinqToEbuboo_20DataContext();
var myusers = from u in db.db_users
where u.uid > 13
select new { u.firstname, u.lastname };
然而,正如Jason Punyon写的那样,你不能从你的方法中返回匿名类型。