LINQ to SQL更新数据库操作
使用LINQ to SQL建模Northwind数据库
在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型:
当使用LINQ to
SQL设计器设计以上定义的五个类(Product,Category,Customer,Order和OrderDetail)的时候,每个类中的属性
都映射了相应数据库中表的列,每个类的实例则代表了数据库表中的一条记录。另外,当定义数据模型时,LINQ to
SQL设计器同样会创建一个自定义DataContext类,来作为数据库查询和应用更新/变化的主要渠道。以上数据模型中定义的DataContext
类命名为“NorthwindDataContext”。该类中包含了代表每个建模数据库表的属性。
使用LINQ语法表达式可以十分简单的使用NorthwindDataContext类来查询和检索数据库中的数据。LINQ to
SQL会在运行时自动的转换LINQ表达式到适当的SQL代码来执行。例如,编写以下LINQ表达式来根据Product
Name检索单个Product对象:
还可以使用LINQ表达式来检索所有不存在于Order Details中的,并且UnitPrice大于100的所以Product:
变化跟踪和DataContext.SubmitChanges()
当执行查询和检索像Product实例这样的对象时,LINQ to SQL会自动保持对这些对象任何变化或更新的跟踪。我们可以进行任意次数的查询,以及使用LINQ to SQL的DataContext类作出更新,而这些变化都会被全部跟踪。
注意:LINQ to SQL的变化跟踪发生于调用者端——而不是在数据库中。这就意味着使用跟踪不会销耗任何数据库资源,也不需要在数据库中改变/安装任何组件模块。
当对从LINQ to
SQL中检索的对象作出更改之后,我们可以选择调用DataContext上的SubmitChange()方法来应用变化返回到数据库。这将会导致
LINQ to SQL动态计算并执行适当的SQL代码来更新数据库。例如,编写以下代码更新数据库中Product
Name为“Chai”的Product上的UnitPrice和UnitsInStock:
当在以上代码中调用northwind.SubmitChanges()方法时,LINQ to SQL会动态构建并执行一个更新这两个Product属性值的SQL“UPDATE”代码模块。
在下面代码中我们来遍历不流行的,昂贵的Product,并把它们的ReorderLevel属性设为0:
当在以上代码中调用northwind.SubmitChanges()方法时,LINQ to SQL会计算并执行一组适当的UPDATE代码模块来修改RecorderLevel属性已变化的Product。
注意,如果一个Product的属性没有通过属性指定而发生变化,则该对象不会被认为是发生变化的,并且LINQ to
SQL也不
相关文档:
一、 SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2Services(数据转换服务),然后 ......
syscolumns
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。
列名数据类型描述
name
sysname
列名或过程参数的名称。
id
int
该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype
tinyint
systypes 中的物理存储类型。
typestat
tinyint
仅限内部使 ......
Insert Into 数据表名称(字段名称1,字段名称2,...) values(字段值1,字段值2,...)
insert into user(username,password,age) values('李老四','6666',45)
Update 数据表名称 Set 字段名称=字段值,字段名称=字段值,...[Where 条件]
Delete from 数据表
下列查询返回在LONDON(伦敦)或SEATTLE(西雅图)的所有雇员:
S ......
--聚合函数
use pubs
go
select avg(distinct price) --算平均数
from titles
where type='business'
go
use pubs
go
select max(ytd_sales) --最大数
from titles
go
use pubs
go
select min(ytd_sales)& ......
数据库快照是MSSQL2005的新功能,仅在 Microsoft SQL Server 2005 Enterprise Edition 中可用。而且SQL Server Management Studio 不支持创建数据库快照,创建快照的唯一方式是使用 Transact-SQL。
数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致 ......