.NET 3.5 - DLINQ(LINQ to SQL)之面向對象的添加、查詢、更新和刪除

步步為營VS 2008 + .NET 3.5(8) - DLINQ(LINQ to SQL)之面向對象的添加、查詢、更新和刪除



作者:webabcd


介紹
以Northwind為示例數據庫,DLINQ(LINQ to SQL)之完全面向對象的添加操作、查詢操作、更新操作和刪除操作


示例
Sample.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Sample.aspx.cs"
????????Inherits="LINQ_DLINQ_Sample" Title="面向對象的添加、查詢、更新和刪除" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
????????<p>
????????????????分類名稱:<asp:TextBox ID="txtCategoryName" runat="server"></asp:TextBox>
?????????????????? 分類描述:<asp:TextBox ID="txtDescription" runat="server"></asp:TextBox>
??????????????????
????????????????<asp:Button ID="btnAdd" runat="server" Text="添加" OnClick="btnAdd_Click" />
????????</p>
????????<asp:GridView ID="gvCategory" runat="server" DataKeyNames="CategoryID" OnSelectedIndexChanged="gvCategory_SelectedIndexChanged"
????????????????OnRowDeleting="gvCategory_RowDeleting" OnRowCancelingEdit="gvCategory_RowCancelingEdit"
????????????????OnRowEditing="gvCategory_RowEditing" OnRowUpdating="gvCategory_RowUpdating">
????????????????<Columns>
????????????????????????<asp:CommandField ShowSelectButton="True" ShowEditButton="True" ShowDeleteButton="True">
????????????????????????</asp:CommandField>
????????????????</Columns>
????????</asp:GridView>
????????<br />
????????<asp:DetailsView ID="dvProduct" runat="server" DataKeyNames="ProductID">
????????</asp:DetailsView>
</asp:Content>

Sample.aspx.cs
InBlock.gifusing System;
InBlock.gifusing System.Data;
InBlock.gifusing System.Configuration;
InBlock.gifusing System.Collections;
InBlock.gifusing System.Linq;
InBlock.gifusing System.Web;
InBlock.gifusing System.Web.Security;
InBlock.gifusing System.Web.UI;
InBlock.gifusing System.Web.UI.WebControls;
InBlock.gifusing System.Web.UI.WebControls.WebParts;
InBlock.gifusing System.Web.UI.HtmlControls;
InBlock.gifusing System.Xml.Linq;
InBlock.gif
InBlock.gifusing DAL;
InBlock.gif
InBlock.gifpublic partial class LINQ_DLINQ_Sample : System.Web.UI.Page
InBlock.gif{
InBlock.gif????????// 實例化一個NorthwindDataContext(DataContext)
InBlock.gif????????NorthwindDataContext _ctx = new NorthwindDataContext();
InBlock.gif
InBlock.gif????????protected void Page_Load(object sender, EventArgs e)
InBlock.gif????????{
InBlock.gif????????????????if (!Page.IsPostBack)
InBlock.gif????????????????{
InBlock.gif????????????????????????BindCategory();
InBlock.gif????????????????}
InBlock.gif????????}
InBlock.gif
InBlock.gif????????private void BindCategory()
InBlock.gif????????{
InBlock.gif????????????????// NorthwindDataContext對象的Category屬性就是Category集合
InBlock.gif????????????????var categories = _ctx.Categories;
InBlock.gif
InBlock.gif????????????????gvCategory.DataSource = categories;
InBlock.gif????????????????gvCategory.DataBind();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void btnAdd_Click(object sender, EventArgs e)
InBlock.gif????????{
InBlock.gif????????????????// 實例化一個Category
InBlock.gif????????????????Categories c = new Categories();
InBlock.gif
InBlock.gif????????????????// 設置Category對象的相關屬性
InBlock.gif????????????????c.CategoryName = txtCategoryName.Text;
InBlock.gif????????????????c.Description = txtDescription.Text;
InBlock.gif
InBlock.gif????????????????// 使用NorthwindDataContext對象的InsertOnSubmit()方法添加Category對象
InBlock.gif????????????????_ctx.Categories.InsertOnSubmit(c);
InBlock.gif
InBlock.gif????????????????// 生成并執行相應的SQL命令
InBlock.gif????????????????_ctx.SubmitChanges();
InBlock.gif
InBlock.gif????????????????gvCategory.EditIndex = -1;
InBlock.gif????????????????BindCategory();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void gvCategory_SelectedIndexChanged(object sender, EventArgs e)
InBlock.gif????????{
InBlock.gif????????????????// 使用查詢語法獲得Product集合
InBlock.gif????????????????var products = from p in _ctx.Products
InBlock.gif???????????????????????????????????????????? where p.Categories.CategoryID == (int)gvCategory.SelectedValue
InBlock.gif???????????????????????????????????????????? select p;
InBlock.gif
InBlock.gif????????????????dvProduct.DataSource = products;
InBlock.gif????????????????dvProduct.DataBind();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void gvCategory_RowDeleting(object sender, GridViewDeleteEventArgs e)
InBlock.gif????????{
InBlock.gif????????????????// 使用Single查詢操作符獲取指定的Category對象
InBlock.gif????????????????Categories category = _ctx.Categories.Single(c => c.CategoryID == (int)gvCategory.DataKeys[e.RowIndex].Value);
InBlock.gif
InBlock.gif????????????????// 使用DeleteOnSubmit()方法刪除NorthwindDataContext對象的Category集合中的指定Category對象
InBlock.gif????????????????_ctx.Categories.DeleteOnSubmit(category);
InBlock.gif
InBlock.gif????????????????// 生成并執行相應的SQL命令
InBlock.gif????????????????_ctx.SubmitChanges();
InBlock.gif
InBlock.gif????????????????gvCategory.EditIndex = -1;
InBlock.gif????????????????BindCategory();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void gvCategory_RowUpdating(object sender, GridViewUpdateEventArgs e)
InBlock.gif????????{
InBlock.gif????????????????// 使用查詢語法和Single查詢操作符獲取指定的Category對象
InBlock.gif????????????????Categories category = (from c in _ctx.Categories
InBlock.gif???????????????????????????????????????????????????????? where c.CategoryID == (int)gvCategory.DataKeys[e.RowIndex].Value
InBlock.gif???????????????????????????????????????????????????????? select c).Single();
InBlock.gif
InBlock.gif????????????????// 設置Category對象的相關屬性
InBlock.gif????????????????category.CategoryName = ((TextBox)gvCategory.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
InBlock.gif????????????????category.Description = ((TextBox)gvCategory.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
InBlock.gif
InBlock.gif????????????????// 生成并執行相應的SQL命令
InBlock.gif????????????????_ctx.SubmitChanges();
InBlock.gif
InBlock.gif????????????????gvCategory.EditIndex = -1;
InBlock.gif????????????????BindCategory();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void gvCategory_RowEditing(object sender, GridViewEditEventArgs e)
InBlock.gif????????{
InBlock.gif????????????????gvCategory.EditIndex = e.NewEditIndex;
InBlock.gif????????????????BindCategory();
InBlock.gif????????}
InBlock.gif
InBlock.gif????????protected void gvCategory_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
InBlock.gif????????{
InBlock.gif????????????????gvCategory.EditIndex = -1;
InBlock.gif????????????????BindCategory();
InBlock.gif????????}
InBlock.gif}


OK
[源碼下載]

?

本文出自 “webabcd” 博客,請務必保留此出處http://webabcd.blog.51cto.com/1787395/345006

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252657.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ARM處理器的分類

對于ARM處理器而言&#xff0c;其目前有Classic系列、Cortex-M系列、Cortex-R系列、Cortex-A系列和Cortex-A50系列5個大類。 Classic系列 該系列處理器由三個子系列組成&#xff1a; ARM7系列&#xff1a;基于ARMv3或ARMv4架構 ARM9系列&#xff1a;基于ARMv5架構 ARM11系列…

Poj 1019

傳送門&#xff1a;http://poj.org/problem?id1019 主要是找數學規律 然后用好pow和log函數&#xff0c;由于數組過大&#xff0c;數組的類型用unsigned 1 #include<iostream>2 #include<cmath>3 using namespace std;4 5 int t;6 int k;7 int n;8 unsigned a[312…

ARM版本系列及家族成員梳理

ARM公司簡介 ARM是Advanced RISC Machines的縮寫&#xff0c;它是一家微處理器行業的知名企業&#xff0c;該企業設計了大量高性能、廉價、耗能低的RISC &#xff08;精簡指令集&#xff09;處理器。 1985年第一個ARM原型在英國劍橋誕生。 公司的特點是只設計芯片&#xff0c…

z-index ie無效

首先來個 解釋了三個原因&#xff1a;http://www.cnblogs.com/hakuci/archive/2011/01/05/1926212.html 我這個還比較特殊 爸爸級別在最底層 遮羞層在中間 兒子最外邊 <div>遮羞層</div> z-index2 <div>爺爺 <div>小爸爸</div> <div>爸…

數據結構與算法問題 AVL二叉平衡樹

AVL樹是帶有平衡條件的二叉查找樹。這個平衡條件必須保持&#xff0c;并且它必須保證樹的深度是O&#xff08;logN&#xff09;。 一棵AVL樹是其每一個節點的左子樹和右子樹的高度最多差1的二叉查找樹。&#xff08;空樹的高度定義為-1&#xff09;。在插入以后。僅僅有那些從插…

tomcat源碼閱讀之StandardHost和StandardEngine

StandardHost及UML類圖&#xff1a; 1、StandardHost類是Host接口的默認實現&#xff1b;其繼承自ContainerBase類&#xff0c;說明他也是一個容器類&#xff0c;既然是容器類&#xff0c;那肯定也有管道對象PipeLine和閥門&#xff0c;其基礎閥門&#xff08;Basic Valve&…

安防監控產業鏈全景梳理

安防行業是隨著現代社會安全需求應運而生的產業&#xff0c;圍繞著視頻監控技術的改革創新&#xff0c;行業從“看得見、看得遠、看得清到看得懂”&#xff0c;一共經歷模擬監控、數字監控、網絡高清監控和智能監控4個階段&#xff0c;每一階段的突破&#xff0c;都由上游技術的…

Vue項目搭建步驟

一&#xff0e; vue-cli初始化1. 全局安裝 vue-cli  npm install --global vue-cli2. 創建一個基于 webpack 模板的新項目  vue init webpack my-project3. 安裝依賴  cd my-project  npm install (換源安裝: npm install --registry https://registry.npm.taobao.org …

Python tutor 簡介

Python tutor 能夠直觀顯示object 引用關系。 網址是 http://www.pythontutor.com/visualize.html 先分享一下我的一個Python tutor&#xff1a; 點我出現神奇&#xff1a; 1&#xff09; 編輯code。 2&#xff09; 運行&#xff0c; 能夠看到以下界面。 這個工具是很酷的&…

提高CSS性能

1、選擇器 了解CSS的查找匹配原理&#xff0c;讓CSS更簡潔、高效使用高效率的CSS選擇器如何使CSS渲染更高效 總結 不要在ID選擇器前使用標簽名 一般寫法&#xff1a;div#divBox 更好寫法&#xff1a;#divBox 解釋&#xff1a; 因為ID選擇器是唯一的&#xff0c;加上div反而增加…

光學鏡頭行業發展現狀及趨勢,智能手機應用領域占比最高

一、光學鏡頭分類 光學鏡頭也叫攝像鏡頭或攝影鏡頭&#xff0c;簡稱鏡頭&#xff0c;其功能就是光學成像。光學鏡頭是光學成像系統中的必備組件&#xff0c;直接影響到成像質量的好壞&#xff0c;影響算法的實現和效果。從結構來看&#xff0c;光學鏡頭一般由精密五金、塑膠零…

關于_vmvare workstation裝32ubuntu的問題

剛開始啟動的時候是黑屏&#xff0c;沒有任何反應 1.bios也設置BIOS intel virtual technology 設置了enabled(開啟硬件虛擬化:要運行一些操作系統&#xff0c;虛擬化軟件和虛擬機&#xff0c;硬件虛擬化就需要啟用。大多數情況下&#xff0c;不需要虛擬化技術的操作系統可以正…

window screen (獲取屏幕信息)

document.write("屏幕寬度"screen.width);document.write("屏幕高度"screen.height);//&#xff08;整個電腦的屏幕的高&#xff09;上面和下面不是有效區的也被包括了 document.write("可用高度"screen.availHeight)//除了上面的任務欄 其他的全…

360°環視(全景影像)系統發展趨勢

360環視系統&#xff0c;系統同時采集車輛四周的影像&#xff0c;經過圖像處理單元一系列的智能算法處理&#xff0c;最終形成一幅車輛四周的全景俯視圖顯示在屏幕上&#xff0c;直觀地呈現出車輛所處的位置和周邊情況。系統大大地拓展了駕駛員對周圍和環境的感知能力&#xff…

python簡記

Python新手懵懂區&#xff1a; 1.不可變對象是傳值&#xff0c;可變對象是傳引用 2.不可變對象被真正復制&#xff0c;而可變對象只是復制了一個對它們的引用 3.*args --> 元組型參數傳遞 **args --> 字典型參數傳遞 4.淺拷貝&#xff1a;只復制了對對象的引用&#…

需求分析挑戰之旅(瘋狂的訂餐系統)(8)——最后的瘋狂

摘要&#xff1a; 說教性質的需求分析理論&#xff0c;各位看了也白看&#xff0c;所以咱們就來一個真實個案——“訂餐系統”體驗一下。“訂餐系統”貌似簡單&#xff0c;但陷阱重重&#xff0c;各種需求分析的經典場景將會一一重現&#xff0c;各位做好準備接受這個挑戰沒有&…

CPU架構:CPU架構詳細介紹

1 概述 CPU架構是CPU商給CPU產品定的一個規范&#xff0c;主要目的是為了區分不同類型的CPU。目前市場上的CPU分類主要分有兩大陣營&#xff0c;一個是intel、AMD為首的復雜指令集CPU&#xff0c;另一個是以IBM、ARM為首的精簡指令集CPU。不同品牌的CPU&#xff0c;其…

【NOIP】關押罪犯

帶權并查集&#xff0c;其實這種并查集的核心就是“向量” 1 #include<cstdio>2 #include<iostream>3 #include<algorithm>4 using namespace std;5 int n,m,p[20001],r[20001]; //0表示在同一監獄&#xff0c;1表示在不同監獄 6 struct node{7 int…

數學之路(3)-機器學習(3)-機器學習算法-SVM[7]

SVM是新近出現的強大的數據挖掘工具&#xff0c;它在文本分類、手寫文字識別、圖像分類、生物序列分析等實際應用中表現出非常好的性能。SVM屬于監督學習算法&#xff0c;樣本以屬性向量的形式提供&#xff0c;所以輸入空間是Rn的子集。 圖1 如圖1所示&#xff0c;SVM的目標是找…

Dalvik指令備忘

跳轉指令 if-eq vx, vy, 目標 如果vx vy注2&#xff0c;跳轉到目標。if-ne vx,vy, 目標 如果vx ! vy注2&#xff0c;跳轉到目標。 if-lt vx,vy, 目標 如果vx < vy注2&#xff0c;跳轉到目標。 if-ge vx, vy, 目標 如果vx > vy注2&#xff0c;跳轉到目標。 if-gt vx,vy, …