0

我正在创建 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

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

4

1 回答 1

0

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

dataGridView2.DataSource = friends.Select(f => new {Friend = f});
于 2013-04-11T16:07:31.390 回答