zoukankan
html css js c++ java
步步为营VS 2008 + .NET 3.5(8) 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
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Xml.Linq;
using
DAL;
public
partial
class
LINQ_DLINQ_Sample : System.Web.UI.Page
{
//
实例化一个NorthwindDataContext(DataContext)
NorthwindDataContext _ctx
=
new
NorthwindDataContext();
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
Page.IsPostBack)
{
BindCategory();
}
}
private
void
BindCategory()
{
//
NorthwindDataContext对象的Category属性就是Category集合
var categories
=
_ctx.Categories;
gvCategory.DataSource
=
categories;
gvCategory.DataBind();
}
protected
void
btnAdd_Click(
object
sender, EventArgs e)
{
//
实例化一个Category
Categories c
=
new
Categories();
//
设置Category对象的相关属性
c.CategoryName
=
txtCategoryName.Text;
c.Description
=
txtDescription.Text;
//
使用NorthwindDataContext对象的InsertOnSubmit()方法添加Category对象
_ctx.Categories.InsertOnSubmit(c);
//
生成并执行相应的SQL命令
_ctx.SubmitChanges();
gvCategory.EditIndex
=
-
1
;
BindCategory();
}
protected
void
gvCategory_SelectedIndexChanged(
object
sender, EventArgs e)
{
//
使用查询语法获得Product集合
var products
=
from p
in
_ctx.Products
where p.Categories.CategoryID
==
(
int
)gvCategory.SelectedValue
select p;
dvProduct.DataSource
=
products;
dvProduct.DataBind();
}
protected
void
gvCategory_RowDeleting(
object
sender, GridViewDeleteEventArgs e)
{
//
使用Single查询操作符获取指定的Category对象
Categories category
=
_ctx.Categories.Single(c
=>
c.CategoryID
==
(
int
)gvCategory.DataKeys[e.RowIndex].Value);
//
使用DeleteOnSubmit()方法删除NorthwindDataContext对象的Category集合中的指定Category对象
_ctx.Categories.DeleteOnSubmit(category);
//
生成并执行相应的SQL命令
_ctx.SubmitChanges();
gvCategory.EditIndex
=
-
1
;
BindCategory();
}
protected
void
gvCategory_RowUpdating(
object
sender, GridViewUpdateEventArgs e)
{
//
使用查询语法和Single查询操作符获取指定的Category对象
Categories category
=
(from c
in
_ctx.Categories
where c.CategoryID
==
(
int
)gvCategory.DataKeys[e.RowIndex].Value
select c).Single();
//
设置Category对象的相关属性
category.CategoryName
=
((TextBox)gvCategory.Rows[e.RowIndex].Cells[
2
].Controls[
0
]).Text;
category.Description
=
((TextBox)gvCategory.Rows[e.RowIndex].Cells[
3
].Controls[
0
]).Text;
//
生成并执行相应的SQL命令
_ctx.SubmitChanges();
gvCategory.EditIndex
=
-
1
;
BindCategory();
}
protected
void
gvCategory_RowEditing(
object
sender, GridViewEditEventArgs e)
{
gvCategory.EditIndex
=
e.NewEditIndex;
BindCategory();
}
protected
void
gvCategory_RowCancelingEdit(
object
sender, GridViewCancelEditEventArgs e)
{
gvCategory.EditIndex
=
-
1
;
BindCategory();
}
}
OK
[源码下载]
查看全文
相关阅读:
使用Python的Mock库进行PySpark单元测试
库龄报表的相关知识
使用PlanViz进行ABAP CDS性能分析
Spark SQL中列转行(UNPIVOT)的两种方法
Spark中的一些概念
使用Visual Studio Code进行ABAP开发
2019年的几个目标
Dom--样式操作
Dom选择器--内容文本操作
Javascript面向
原文地址:https://www.cnblogs.com/webabcd/p/928353.html
最新文章
附录C 编译安装Hive
附录B 安装MySql数据库
MyBatis中Executor源码解析之BatchExecutor搞不懂
从mybatis源码看JDK动态代理
java线程中断Interrupted用法
java获取异步线程执行结果示例,也是Executors框架的基本原理
java中==和equals比较
java Word转Html
java中输入流输出流的判断依据是什么
LinkedList的队列用法
热门文章
java中LinkedList源码分析
java泛型中的通配符
SAP中的数据库表索引
Dynamics 365中的Client API form context (formContext)
跟踪记录ABAP对外部系统的RFC通信
我眼中的大人
如何减小ABAP业务代码的复杂度
Dynamics 365 CRM 开发架构简介
软件设计之Deep Module(深模块)
我的Spark SQL单元测试实践
Copyright © 2011-2022 走看看