千家信息网

ADO.NET如何连接

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关ADO.NET如何连接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.连接在创建 LINQ to SQL DataContext 时,可以提供现
千家信息网最后更新 2026年11月02日ADO.NET如何连接

这篇文章给大家分享的是有关ADO.NET如何连接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1.连接

在创建 LINQ to SQL DataContext 时,可以提供现有 ADO.NET连接。对 DataContext 的所有操作(包括查询)都使用所提供的这个连接。如果此连接已经打开,则在您使用完此连接时,LINQ to SQL 会保持它的打开状态不变。我们始终可以访问此连接,另外还可以使用 Connection 属性自行关闭它。

//新建一个标准的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();

语句描述:这个例子使用预先存在的ADO.NET连接创建Northwind对象,本例中的查询返回运费至少为500.00 的所有订单。

2.事务

当我们已经启动了自己的数据库事务并且我们希望DataContext 包含在内时,我们可以向 DataContext 提供此事务。
通过 .NET Framework 创建事务的***方法是使用 TransactionScope 对象。通过使用此方法,我们可以创建跨数据库及其他驻留在内存中的资源管理器执行的分布式事务。事务范围几乎不需要资源就可以启动。它们仅在事务范围内存在多个连接时才将自身提升为分布式事务。

using (TransactionScope ts = new TransactionScope())  {  db.SubmitChanges();  ts.Complete();  }

注意:不能将此方法用于所有数据库。例如,SqlClient 连接在针对 SQL Server 2000 服务器使用时无法提升系统事务。它采取的方法是,只要它发现有使用事务范围的情况,它就会自动向完整的分布式事务登记。

下面用一个例子说明一下事务的使用方法。在这里,也说明了重用 ADO.NET 命令和 DataContext 之间的同一连接。

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();

语句描述:这个例子使用预先存在的 ADO.NET连接创建 Northwind 对象,然后与此对象共享一个 ADO.NET 事务。此事务既用于通过 ADO.NET连接执行 SQL 命令,又用于通过 Northwind 对象提交更改。当事务因违反 CHECK 约束而中止时,将回滚所有更改,包括通过 SqlCommand 做出的更改,以及通过Northwind 对象做出的更改。

感谢各位的阅读!关于"ADO.NET如何连接"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

事务 对象 数据 例子 分布式 数据库 方法 范围 查询 内存 内容 命令 更多 标准 此方法 篇文章 订单 语句 资源 错误 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 互联网扶贫科技 互联网巨头科技公司 互联网科技战争 广州互联网科技公司 互联网 的科技创新 凡科互联网科技 电子科技大学互联网 万达互联网科技 天扬科技互联网广告 互联网科技素材视频竖屏 恒生科技互联网指数分析 湖南洣水互联网科技有限公司扣款 金融科技与互联网金融相同和不同 互联网金融科技公司干啥的 国大互联网教育科技有限公司工作 互联网在线教育科技创业 山东子淼互联网科技有限公司 青岛易易互联网科技 山东亿川互联网科技有限责任公司 互联网科技公司排名 疫情对互联网科技公司影响 互联网 卓越科技 哈尔滨新华互联网科技 互联网科技股午盘股票涨跌 亳州好赞互联网科技有限公司 江苏苏星互联网科技有限公司 互联网科技数字货币 世界互联网科技成果奖 互联网的黑科技实验室
0