以 Northwind 資料庫為例,示範使用 LINQ to SQL (DLINQ) 進行類別的新增、查詢、更新、刪除操作,搭配 ASP.NET GridView/DetailsView 控制項完成完整資料維護頁面。
GridView 顯示類別清單,支援選取、編輯、刪除,DataKeyNames="CategoryID"。DetailsView 顯示所選類別下的產品明細。NorthwindDataContext _ctx = new NorthwindDataContext();
private void BindCategory()
{
gvCategory.DataSource = _ctx.Categories;
gvCategory.DataBind();
}
Categories c = new Categories();
c.CategoryName = txtCategoryName.Text;
c.Description = txtDescription.Text;
_ctx.Categories.InsertOnSubmit(c);
_ctx.SubmitChanges();
BindCategory();
var products = from p in _ctx.Products
where p.Categories.CategoryID == (int)gvCategory.SelectedValue
select p;
dvProduct.DataSource = products;
dvProduct.DataBind();
Categories category = _ctx.Categories.Single(
c => c.CategoryID == (int)gvCategory.DataKeys[e.RowIndex].Value);
_ctx.Categories.DeleteOnSubmit(category);
_ctx.SubmitChanges();
BindCategory();
Categories category = (from c in _ctx.Categories
where c.CategoryID == (int)gvCategory.DataKeys[e.RowIndex].Value
select c).Single();
category.CategoryName = ((TextBox)gvCategory.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
category.Description = ((TextBox)gvCategory.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
_ctx.SubmitChanges();
BindCategory();
DataContext 為核心進入點,實體類別對應資料表,屬性對應欄位。InsertOnSubmit/DeleteOnSubmit 標記變更,SubmitChanges 批次送出 SQL。