.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.mzph.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, …