首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

LINQ to SQL 實戰:完全面向物件的 CRUD 操作範例

     編輯:關於.NET

以 Northwind 資料庫為例,示範使用 LINQ to SQL (DLINQ) 進行類別的新增、查詢、更新、刪除操作,搭配 ASP.NET GridView/DetailsView 控制項完成完整資料維護頁面。

前端頁面 (Sample.aspx)

  • 文字方塊輸入類別名稱/描述 + 「新增」按鈕。
  • GridView 顯示類別清單,支援選取、編輯、刪除,DataKeyNames="CategoryID"。
  • DetailsView 顯示所選類別下的產品明細。

後端程式碼 (Sample.aspx.cs) 重點

資料繫結

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。
  • 查詢語法與 Lambda 皆可,LINQ to SQL 自動轉譯為 T-SQL。
  • 無需手寫 SQL、參數化、連線管理,專注於物件模型操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved