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

aet 发布于 2019-03-09 c# 最后更新 2019-03-09 14:33 3 浏览

我正在创建一个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
当我在列表框或组合框上调用相同的方法时,它的工作正常,并显示我适当的字符串,但在网格显示字符串的长度。 请帮我解决这个问题。
已邀请:

riure

赞同来自:

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

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