使用linq从数据库c#中填充GridView

时间:2013-04-11 16:00:51

标签: c# wcf linq-to-sql

我正在创建一个WCF服务,并且我创建了一个从数据库中获取一个列值的方法。方法是

   public List<String> AllFriends(string username)
    {

        MyDatabaseEntities acontext = new MyDatabaseEntities();
        var result = from c in acontext.Friends
                     where c.Owner==username
                     select c.Friend1;
        return result.ToList();
    }

我在客户端将此方法称为:

        List<string> friends = new List<string>();
        friends = aSave.AllFriends(Session.username).ToList();
        dataGridView2.DataSource = friends;

问题是当我运行它的不填充网格的值,但它显示了长度的值,如

length
 2
 4

当我在列表框或组合框上调用相同的方法时,它的工作正常并向我显示正确的字符串,但在网格上显示字符串的长度。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

这是因为网格显示了对象的公共属性的值。 所以你需要一个带有字符串属性的对象而不是字符串本身。 它可以是匿名对象,例如:

dataGridView2.DataSource = friends.Select(f => new {Friend = f});