如何使用 LinqToSQL 显示查询结果

How to display results from query with LinqToSQL

我卡住了。我想将查询结果显示到数据网格中。

我将 LinqToSQL class 命名为:linq_to_sql.dbml

我有我的数据网格:

<DataGrid x:Name="list_clients"></DataGrid>

这是我的代码:

linq_to_sqlDataContext db = new linq_to_sqlDataContext();
var query = (from c in db.CLIENT select c);
list_clients.ItemsSource = query;

但是每次我 运行 我的应用程序都不起作用:System.InvalidCastException 错误

目前var query不包含你的查询结果,它仍然有你的sql格式的查询(你可以在这行打断点,看看query的值) ,直到您将此查询转换为某个集合或数据表。为了绑定网格,您需要集合类型或数据表。更改此行:

list_clients.ItemsSource = query;

list_clients.ItemsSource = query.ToList();

我可以通过这样做来填充您的 DataGrid:

public WindowDemo01()
{
    InitializeComponent(); // Make sure this occurs first so that your Datagrid is built before your ItemsSource is set.

    var query = (from c in db.CLIENT select new { Name = c.Name });    

    list_clients.ItemsSource = query.ToList();

}

我使用了一个字段名 = "Name" 因为那是我的 table 所拥有的。你可以用别的东西。您还可以 return 多个字段。

确保数据库中的 CLIENT table 与数据上下文设置的相同。您可能需要使用服务器资源管理器才能获得所需内容。

我一直没能得到你遇到的 System.InvalidCastException 错误。我怀疑您的应用程序中可能发生了其他事情。