- 浏览: 59991 次
- 性别:
- 来自: 北京
最新评论
-
chungle:
hatedance 写道这个page method返回的是ht ...
使用 jQuery 调用 ASP.NET AJAX Page Method -
hatedance:
这个page method返回的是html片段吗?也就是说只能 ...
使用 jQuery 调用 ASP.NET AJAX Page Method
它基于由 ADO.NET 提供程序模型提供的服务。因此,我们可以将 LINQ to SQL 代码与现有的 ADO.NET 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to SQL。 在创建 LINQ to SQL DataContext 时,可以提供现有 ADO.NET 连接。对 DataContext 的所有操作(包括查询)都使用所提供的这个连接。如果此连接已经打开,则在您使用完此连接时,LINQ to SQL 会保持它的打开状态不变。我们始终可以访问此连接,另外还可以使用 Connection 属性自行关闭它。 语句描述:这个例子使用预先存在的ADO.NET连接创建Northwind对象,本例中的查询返回运费至少为500.00 的所有订单。 当我们已经启动了自己的数据库事务并且我们希望DataContext 包含在内时,我们可以向 DataContext 提供此事务。 注意:不能将此方法用于所有数据库。例如,SqlClient 连接在针对 SQL Server 2000 服务器使用时无法提升系统事务。它采取的方法是,只要它发现有使用事务范围的情况,它就会自动向完整的分布式事务登记。 下面用一个例子说明一下事务的使用方法。在这里,也说明了重用 ADO.NET 命令和 DataContext 之间的同一连接。 语句描述:这个例子使用预先存在的 ADO.NET 连接创建 Northwind 对象,然后与此对象共享一个 ADO.NET 事务。此事务既用于通过 ADO.NET 连接执行 SQL 命令,又用于通过 Northwind 对象提交更改。当事务因违反 CHECK 约束而中止时,将回滚所有更改,包括通过 SqlCommand 做出的更改,以及通过Northwind 对象做出的更改。 如果 LINQ to SQL 查询不足以满足专门任务的需要,我们可以使用 ExecuteQuery 方法来执行 SQL 查询,然后将查询的结果直接转换成对象。 语句描述:这个例子使用ExecuteQuery<T>执行任意 SQL 查询,并将所得的行映射为 Product 对象的序列。 采用DataContext 连接时,可以使用ExecuteCommand来执行不返回对象的 SQL 命令。 语句描述:使用ExecuteCommand执行任意SQL命令,本例中为将所有产品单价提高 1.00 的批量更新。ADO.NET与LINQ to SQL
1.连接
//新建一个标准的ADO.NET连接:
SqlConnection nwindConn = new SqlConnection(connString);
nwindConn.Open();
// ... 其它的ADO.NET数据操作代码... //
//利用现有的ADO.NET连接来创建一个DataContext:
Northwind interop_db = new Northwind(nwindConn);
var orders =
from o in interop_db.Orders
where o.Freight > 500.00M
select o;
//返回Freight>500.00M的订单
nwindConn.Close();
2.事务
通过 .NET Framework 创建事务的首选方法是使用 TransactionScope 对象。通过使用此方法,我们可以创建跨数据库及其他驻留在内存中的资源管理器执行的分布式事务。事务范围几乎不需要资源就可以启动。它们仅在事务范围内存在多个连接时才将自身提升为分布式事务。using (TransactionScope ts = new TransactionScope())
{
db.SubmitChanges();
ts.Complete();
}
var q =
from p in db.Products
where p.ProductID == 3
select p;
//使用LINQ to SQL查询出来
//新建一个标准的ADO.NET连接:
SqlConnection nwindConn = new SqlConnection(connString);
nwindConn.Open();
//利用现有的ADO.NET连接来创建一个DataContext:
Northwind interop_db = new Northwind(nwindConn);
SqlTransaction nwindTxn = nwindConn.BeginTransaction();
try
{
SqlCommand cmd = new SqlCommand("UPDATE Products SET"
+"QuantityPerUnit = 'single item' WHERE ProductID = 3");
cmd.Connection = nwindConn;
cmd.Transaction = nwindTxn;
cmd.ExecuteNonQuery();
interop_db.Transaction = nwindTxn;
Product prod1 = interop_db.Products.First(p => p.ProductID == 4);
Product prod2 = interop_db.Products.First(p => p.ProductID == 5);
prod1.UnitsInStock -= 3;
prod2.UnitsInStock -= 5;//这有一个错误,不能为负数
interop_db.SubmitChanges();
nwindTxn.Commit();
}
catch (Exception e)
{
//如果有一个错误,所有的操作回滚
Console.WriteLine(e.Message);
}
nwindConn.Close();
3.直接执行SQL语句
1.直接执行SQL查询
var products = db.ExecuteQuery<Product>(
"SELECT [Product List].ProductID,"+
"[Product List].ProductName " +
"FROM Products AS [Product List] " +
"WHERE [Product List].Discontinued = 0 " +
"ORDER BY [Product List].ProductName;"
);
2.直接执行SQL命令
db.ExecuteCommand
("UPDATE Products SET UnitPrice = UnitPrice + 1.00");
发表评论
-
LINQ简介
2009-06-10 16:58 644查询表达式(LINQ)简介 在上两篇我介绍了C#3. ... -
LINQ to SQL语句(25)之继承
2009-06-10 16:57 776继承支持 LINQ to SQL 支持单表映射,其整 ... -
LINQ to SQL语句(23)之动态查询
2009-06-10 16:55 1293动态查询 有这样一 ... -
LINQ to SQL语句(22)之DataContext
2009-06-10 16:54 696DataContext DataContext作 ... -
LINQ to SQL语句(21)之用户定义函数
2009-06-10 16:52 705用户定义函数 我们 ... -
LINQ to SQL语句(20)之存储过程
2009-06-10 16:51 721存储过程 在我们编写程序中,往往需要一些存储过程,在 ... -
LINQ to SQL语句(18)之运算符转换
2009-06-10 16:49 865运算符转换 1.AsEnumerable:将类型转换为泛 ... -
LINQ to SQL语句(17)之对象加载
2009-06-10 16:48 590对象加载 延迟加载 在查询某对象时,实际上你只查询该对 ... -
LINQ to SQL语句(16)之对象标识
2009-06-10 16:47 521对象标识 运行库中的对象具有唯一标识。引用同一 ... -
LINQ to SQL语句(15)之String
2009-06-10 16:46 791字符串(String) LINQ t ... -
LINQ to SQL语句(14)之Null语义和DateTime
2009-06-10 16:46 915Null语义 说明:下面第一个例子说明查询Reports ... -
LINQ to SQL语句(13)之开放式并发控制和事务
2009-06-10 16:45 721Simultaneous Changes开放 ... -
LINQ to SQL语句(12)之Delete和使用Attach
2009-06-10 16:44 755删除(Delete) 1.简单形式 说明:调用Dele ... -
LINQ to SQL语句(11)之Update
2009-06-10 16:43 788更新(Update) 说明:更新操作,先获取对象,进行修 ... -
LINQ to SQL语句(10)之Insert
2009-06-10 16:42 786插入(Insert) 1.简单形式 说明:new一个对 ... -
LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods
2009-06-10 16:42 1017Top/Bottom操作 适用场景:适量的取出自己想要的 ... -
LINQ to SQL语句(8)之Concat/Union/Intersect/Except
2009-06-10 16:41 1044Concat/Union/Intersect/Ex ... -
LINQ to SQL语句(7)之Exists/In/Any/All/Contains
2009-06-10 16:39 1403Exists/In/Any/All/Contains操 ... -
LINQ to SQL语句(6)之Group By/Having
2009-06-10 16:38 1084Group By/Having操作符 适用场景:分组 ... -
LINQ to SQL语句(5)之Order By
2009-06-10 16:36 1036Order By操作 适用场景:对查询出的语句进行 ...
相关推荐
LINQ to SQL允许开发者使用C#或VB.NET的查询语法直接操作数据库,将SQL语句隐式转化为对象操作。这种方法减少了手动编写SQL的需求,提高了代码可读性和维护性,但在大型项目中可能显得不够强大。 最后是ADO.NET ...
开发者仍然可以结合使用LINQ To SQL和ADO.NET,例如在需要更复杂的数据库操作时,可以通过ADO.NET的SqlCommand对象来执行自定义的SQL语句。 6. 结论: LINQ To SQL为.NET开发者提供了一种强大且灵活的数据访问方式...
当执行查询时,LINQ to SQL会自动生成对应的SQL语句,然后发送到数据库执行,最后将结果转换为.NET对象。这种方法极大地简化了数据库访问,减少了手写SQL的必要,并且提供了类型安全和编译时检查。 使用LINQ to ADO...
ADO.Net助手还可以用来以插入SQL语句形式导出导入记录,目前提供了插件还可以生成ADO.Net的C#数据库代码和上述支持的数据库Linq to Sql数据库代码,大大简化编写数据库代码复杂度和缩短了编写数据库代码时间。...
1. **ADO.NET实体框架**:LINQ to ADO.NET通常与ADO.NET实体框架(Entity Framework)一起使用,该框架提供了一个ORM(对象关系映射)层,使开发人员能够用面向对象的方式操作数据库,而无需关心底层的SQL语句。...
ADO.Net助手还可以用来以插入SQL语句形式导出导入记录,目前提供了插件还可以生成ADO.Net的C#数据库代码和上述支持的数据库Linq to Sql数据库代码,大大简化编写数据库代码复杂度和缩短了编写数据库代码时间。...
5. **LINQ to SQL和LINQ to Entities**:ADO.NET 4进一步整合了Language Integrated Query (LINQ)技术,使得开发者可以用更直观的C#或VB.NET语法进行数据库查询,同时支持LINQ to SQL和LINQ to Entities。...
3. **命令对象和参数化查询**:讨论如何使用Command对象执行SQL语句,以及如何使用参数化查询防止SQL注入攻击,提高代码安全性和效率。 4. **事务处理**:涵盖如何在ADO.NET中实现事务控制,包括本地事务和分布式...
- 虽然LINQ(Language Integrated Query)在.NET 3.5中引入,但它与ADO.NET 2.0紧密相关,提供了更直观和强大的查询数据库的方式,使代码更易读、更安全。 10. **性能优化** - ADO.NET 2.0在性能方面进行了许多...
DataContext是LINQ to SQL的核心,它负责将C#代码中的查询转换为SQL语句,与数据库进行交互,同时将数据返回给应用程序。它作为数据访问层的入口点,提供了一种面向对象的方式来处理数据库操作。 2. **功能** - *...
这样,LINQ to SQL会自动生成对应的DELETE SQL语句并执行。例如: ```csharp using (var db = new MyDataContext()) { var itemToRemove = db.Items.First(i => i.Id == 1); db.Items.Remove(itemToRemove); db....
10. LINQ to SQL和Entity Framework:虽然这些不是ADO.NET的核心部分,但本书可能也会涉及。LINQ(Language Integrated Query)允许开发者使用C#或VB.NET的语法直接查询数据,而Entity Framework则是一种ORM(对象...
6. LINQ to SQL和Entity Framework:作为现代.NET开发中更高级的数据访问技术,LINQ简化了SQL查询的编写,而Entity Framework提供了ORM(对象关系映射)功能,使得开发者可以更专注于业务逻辑而不是底层数据库操作。...
通过这个技术,你可以直接在C#或VB.NET代码中编写SQL语句,而无需担心具体的数据库方言。它简化了数据库操作,减少了与数据库交互的代码量,并提高了代码的可读性。 **3. LINQ to SQL** LINQ to SQL是.NET ...
9. LINQ to SQL和Entity Framework:虽然不是ADO.NET的直接部分,但它们是基于ADO.NET的ORM(对象关系映射)工具,简化了数据库操作。面试中可能需要比较它们与传统ADO.NET的区别和优势。 10. 数据绑定:ADO.NET...
在ASP.NET ADO.NET5中,可能会讲解如何使用LINQ to Entities简化与数据库的交互,提供更强大的查询能力。 6. **数据绑定**:在ASP.NET MVC中,数据绑定是将模型数据自动显示到视图或者从视图接收用户输入的一种方式...
- ADO.NET的主要命名空间包括`System.Data.SqlClient`(针对SQL Server)、`System.Data.OleDb`等。 - 每个命名空间下包含了用于连接、命令执行、数据填充等操作的相关类。 8. **掌握Connection对象对数据库连接...
接下来,ADO.NET的主要功能包括连接数据库、执行SQL语句、处理结果集、事务管理以及数据缓存。Connection对象用于建立和管理到数据库的连接,例如使用SqlConnection类连接SQL Server数据库。Command对象则用于执行...
虽然不是ADO.NET的一部分,但与之紧密相关的还有Microsoft的ORM(对象关系映射)工具,如Entity Framework和LINQ to SQL。它们提供了更高级别的抽象,使得开发者可以直接用C#或VB.NET代码操作数据库,而无需编写...