2013-04-11 38 views
0

我正在创建一个WCF服务,并且已经创建了一个从数据库中获取一列值的方法。方法是使用linq填充GridView与数据库中的列表c#使用linq

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; 

问题是,当我运行这个它不填充网格值,但它向我展示价值的lenght像

length 
2 
4 

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

+0

哪里是你的XAML? – 2013-04-11 16:04:26

+0

我认为这是winforms ... – 2kay 2013-04-11 16:05:14

回答

0

这是因为网格显示对象的公共属性的值。 因此,你需要用字符串属性,而不是字符串本身的对象.. 这可能是匿名的对象,例如:

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

是的,我也试过,它仍然不工作 – Hardeep 2013-04-15 20:36:51