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
[源码下载]
查看全文
相关阅读:
树分治
实现自己的shell--MIT xv6 shell
逆元打表
Linux fork()函数
三分:求解凸函数极值
anti-nim 游戏
nginx配置文件详解
nginx之别名、location使用
shell脚本编程基础知识点
linux任务计划
原文地址:https://www.cnblogs.com/webabcd/p/928353.html
最新文章
webapi中的路由约束
webapi中的路由前缀
[03]APUE:文件 I/O
[02]APUE:POSIX 正则库(#include <regex.h>)
[01]APUE:sysconf / pathconf
[00]APUE:GCC / GDB / Makefile
Python3 From Zero——{最初的意识:008~初级实例演练}
Python3 From Zero——{最初的意识:007~函数}
Python3 From Zero——{最初的意识:006~数据编码与处理}
Python3 From Zero——{最初的意识:005~文件和I/O}
热门文章
Python3 From Zero——{最初的意识:004~迭代器和生成器}
Python3 From Zero——{最初的意识:003~数字、日期、时间}
Python3 From Zero——{最初的意识:002~字符串和文本}
Python3 From Zero——{最初的意识:001~数据结构和算法}
Python3 From Zero——{最初的意识:000~Initial consciousness}
专题:“find -perm”
拾遗:Perl 在 Shell 脚本编程中的应用
Classic IPC Problems 经典的进程间通信问题
ZOJ4043 Virtual Singers
Linux编程 多进程,多线程求解PI(圆周率)
Copyright © 2011-2022 走看看