基本 LINQ 到 SQL GridView 绑定

本文关键字:GridView 绑定 SQL LINQ 基本 | 更新日期: 2024-10-30 08:59:07

我对使用 LINQ to

SQL 完全陌生(但熟悉 LINQ to objects),我很好奇为什么以下代码段没有引发异常或错误,但不创建 GridView 并将数据绑定到它。

这是在网络表单的Page_Load事件中:

ContactsDataContext db = new ContactsDataContext();
db.Contacts.Where(x => x.Phone.Length > 0);
GridView gv = new GridView();
gv.DataSource = db.Contacts;
gv.DataBind();

如果我在设计器中拖放和 GridView 并将数据源设置为 LINQ to SQL,它将按预期工作。LinqDataSource 的标记

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
ContextTypeName="LinqExample.ContactsDataContext" EntityTypeName="" 
TableName="Contacts">
</asp:LinqDataSource>

联系人是 .dbml 文件中的唯一表。 我错过了什么?

基本 LINQ 到 SQL GridView 绑定

调用查询的 ToList()。此外,您的过滤不正确。您需要将过滤器设置为变量。你不能只调用 Where()。按照现在的代码,您将返回表中的所有联系人记录。此外,还需要将 GridView 添加到页面上已有的控件。

ContactsDataContext db = new ContactsDataContext();
var filteredContacts = db.Contacts.Where(x => x.Phone.Length > 0);
GridView gv = new GridView();
gv.DataSource = filteredContacts.ToList();
gv.DataBind();
this.Controls.Add(gv);

从下面的链接来看,您需要为 LINQ 命令创建一个函数,该函数将返回 LIST 类型,然后调用该函数:

 protected void Page_Load(object sender, EventArgs e)  
    {  
        if (!Page.IsPostBack)  
        {  
            gvitems.DataSource = GetItemsRecord();  
            gvitems.DataBind();  
        }  
    }  
    public List<ITEM> GetItemsRecord()  
    {  
        BindGridViewDataContext db = new BindGridViewDataContext();  
        var listitemsrecord = (from x in db.ITEMs select x).ToList<ITEM>();  
        return listitemsrecord;  
    }  

https://www.c-sharpcorner.com/UploadFile/70dbe6/how-to-bind-gridview-using-linq-to-sql/