基本 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 文件中的唯一表。 我错过了什么?
调用查询的 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/