当年学习ADO.NET的笔记

那些年我还在学ADO.NET
那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式。连接模式指的是在访问数据时,一直与数据库保持连接,访问完数据后才与数据库断开连接,主要采用的ADO.NET对象是Connection、Command、DataReader等;连接模式指的是通过数据集的方式对数据库进行操作,将数据读到内存中,从而完成数据的操作,数据集会自动更新到数据库,主要采用ADO.NET对象是DataAdapter、DataSet等。下面的我们就来看一下代码吧。
本示例代码采用工厂模式的方式,这样就可以达到只改变少量的代码完成数据库之间的切换,工厂模式是要采用的对象有以下几个:DbProviderFactory、DbConnection、DbTransaction
、DbCommand、DbDataReader、DbDataAdapter、DbCommandBuilder等。

1、 共同的连接串

代码如下:

string ProviderName = "System.Data.SqlClient";
string ConnStr = "Data Source=.;Initial Catalog=Northind;Integrated Security=True";
string sqlStr = "select * from dbo.Categories";

2、 非连接模式代码如下:

代码如下:

public void getSqlConnection()
{
//得到一个数据提供者,根据其传入的数据提供者对象
DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);
//创建连接
DbConnection conn = dbf.CreateConnection();
//连接字符串
conn.ConnectionString = ConnStr;
conn.Open();
DbTransaction ts = conn.BeginTransaction();
DbCommand dbcmd = null;
try
{
dbcmd = dbf.CreateCommand();
dbcmd.CommandText = sqlStr;
dbcmd.Connection = conn;
dbcmd.Transaction = ts;
DbDataReader dr = dbcmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr[1].ToString());
}
dr.Close();
ts.Commit();
}
catch (Exception e)
{
ts.Rollback();
}
finally
{
conn.Close();
if (dbcmd != null)
{
dbcmd.Dispose();
}
}
}

效果:

3、 连接模式代码:


代码如下:

public void getDataSetConnection()
{
//得到一个数据提供者,根据其传入的数据提供者对象
DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);
//创建连接
DbConnection conn = dbf.CreateConnection();
//连接字符串
conn.ConnectionString = ConnStr;
//创建DataAdapter对象
DbDataAdapter da = dbf.CreateDataAdapter();
//创建自动生成sql语句对象
DbCommandBuilder dbCmdb = dbf.CreateCommandBuilder();
using (DbCommand dbcmd = dbf.CreateCommand())
{
dbcmd.CommandText = sqlStr;
dbcmd.Connection = conn;
//DbDataAdapter指定命令
da.SelectCommand = dbcmd;
//DbCommandBuilder指定dataAdpter
dbCmdb.DataAdapter = da;
DataSet ds = new DataSet();
da.Fill(ds);
// ds.Tables[0].Rows[0].Delete();
da.Update(ds);
DataTable dt = ds.Tables[0];
DataRow dr;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
Console.WriteLine(dr[1] + " " + dr[2]);
}
}
}

效果:

以上是一个简单的例子,在正常情况下,就不会把连接串写成字符串,应放在config文件中,同样SQL语句也会改为存储过程,这样改起来比较方便。

总结

那些年学习ADO.NET,基本了解了怎样去访问数据库,对其进行操作,现在.NET又有了一些新的方法,比如说使用Linq、DbContext等;此文以回忆那些年学习的日子。

(0)

相关推荐

  • ASP.NET:ADO.NET的DataAdapter对象

    DataAdapter对象可以隐藏和Connection.Command对象沟通的细节,通过DataAdapter对象建立.初始化DataTable,从而和DataSet对象结合起来在内存存放数据表副本,实现离线式数据库操作,事实上在8.1.2节中,我们在介绍DataSet数据模型的时候就已经演示了如何利用DataAdapter对象进行数据库连接.DataAdapter对象允许将DataSet对象中的数据保存到数据源中,也可以从数据源中读取数据,并且也可以底层数据保存体进行数据的添加.删除.更新

  • 用C#对ADO.NET数据库完成简单操作的方法

    数据库访问是程序中应用最普遍的部分.随着C#和ADO.NET的引入,这种操作变得更简单.这篇文章将示范四种最基础的数据库操作.  ● 读取数据.其中包括多种数据类型:整型,字符串,日期型.  ● 写数据.如读数据一样,我们也需要写入多种类型的数据.这可以通过SQL语句来完成.  ● 更新或修改数据.我们将再次用到SQL语句.  ● 删除数据.用SQL实现.  上述的操作都要基于Microsoft Access 2000数据库,但是,我们要对连接字符串进行简单的修改才能使用SQL或其他ADO数据.

  • 一个经典的ADO.NET入门例子

    众所周知,ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开联系的情况下进行,然后再把数据更新情况传回到 数据源.这样大大减少了连接过多对于数据库服务器资源的占用.下面是我在<ADO.NET实用指南>这本书上看到的一个例子,比较清楚的讲解 了ADO.NET的使用方法.  Imports System.Data.SqlClient  Imports System.Data  Imports System.Data.Common Public Class Form1 

  • 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)

    可能只是那么想也是那么设计的,要支持多数据库,要能支持多数据库,万一要是以后数据库变了怎么办?万一要是...怎么办?这些顾虑很多时候是不必要的,反而绕了弯子.大都是做项目应用系统而非产品,即使要用不同的数据库了,基本上是吧上一个项目全COPY过来,修修改改OK了.产品可能就不一样了,那才可能要支持真正的多数据库,才可能会面对真正的数据库访问类库的多数据库的实际检验.ADO.NET2.0下增强了数据库访问的功能,也就是工厂式类库,提到工厂式数据库访问,网上可就多了,ADO.NET2.0增强的工厂式

  • 数据库开发总结(ADO.NET小结)

    一.用SqlConnection连接SQL Server 1..加入命名空间 using System.Data.SqlClient; 2.连接数据库 SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = "user id=sa;password=sinofindb;initial catalog=test;data source=127.0.0.1;Connect Timeout=30

  • ADO.NET 的最佳实践技巧

    这是我很早以前看过的微软的一篇文章,最近,一些网友问的问题很多理论都在里面,所以,整理一下放在这里,大家可以参考一下. 简介 本文为您提供了在 Microsoft ADO.NET 应用程序中实现和获得最佳性能.可伸缩性以及功能的最佳解决方案:同时也讲述了使用 ADO.NET 中可用对象的最佳实践:并提出一些有助于优化 ADO.NET 应用程序设计的建议. 本文包含: • 有关 .NET 框架包含的 .NET 框架数据提供程序的信息. • DataSet 和 DataReader 之间的比较,以及

  • ADO.NET实用技巧两则

    要想充分发挥ADO.NET的优势,不仅需要全面.深入理解ADO.NET编程模型,及时总结经验.技巧也十分重要.ADO已经有多年的实践经验,ADO.NET以此为基础,提供了更加丰富.强大的工具:尽管如此,ADO.NET的设计目标毕竟不是提供一个即插即用的工具,它不会把所有的编程工作简化到仅靠鼠标点击就可以完成的程度.  ADO.NET包含了一大堆代表数据访问模型中各种逻辑实体的对象,其中尤以连接.事务这两个对象最为重要.连接的作用是建立一个与后端数据库通信的通道,创建连接对象必须以特定的.NET数

  • ADO.NET EF中的实体修改方法

    1.传统修改模式,看下列代码 复制代码 代码如下: using (NorthwindEntities context = new NorthwindEntities()) { Region region = context.Region.FirstOrDefault(v => v.RegionID == 4); region.RegionDescription = "Test"; context.SaveChanges(); } 监控SQL语句: 复制代码 代码如下: SQL1:

  • 当年学习ADO.NET的笔记

    那些年我还在学ADO.NET 那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式.连接模式指的是在访问数据时,一直与数据库保持连接,访问完数据后才与数据库断开连接,主要采用的ADO.NET对象是Connection.Command.DataReader等:连接模式指的是通过数据集的方式对数据库进行操作,将数据读到内存中,从而完成数据的操作,数据集会自动更新到数据库,主要采用ADO.NET对象是DataAdapter.Dat

  • asp.net中ADO SQL数据库 笔记汇总 持续更新中

    ADO连接数据库 1)获取连接字符串 方式一: 记住连接字符串 connectionString=" Integrated Security=True; server=. ; database=DBName" 方式二:在visual studio中,点击"视图"à服务资源管理器à右击左侧的"数据连接",选择"添加连接"à服务名: 为一个点.选择数据库名,然后点击"高级",然后复制底部的连接字符串 2)在we

  • canvas学习之API整理笔记(一)

    其实canvas本身很简单,就是去学习它的API,多看实例,多自己动手练习,多总结.但是canvas的API实在是有点多,对于初学者来说,可能学到一半就止步不前了.我也有这种感觉,在学习的过程中,编写实例,用到了其中很多的属性和方法,但是回头来看的时候总觉得什么也没用.所以决定系统性的记录一下它常用到的API,方便以后查阅,也顺便造福一下大家. 开始之前 假设html代码中有一个canvas标签: <canvas id="canvas">你的浏览器不支持canvas!<

  • canvas学习之API整理笔记(二)

    前面我整理过一篇文章介绍了一些基本的API,从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知识点的同时还会有一些酷炫的demo,保证看官们全程在线,毫无尿点,看完不会后悔,哈哈,一个耿直的笑^_^. 除此之外,关于canvas的一系列实例即将来袭!欢迎关注! 开始之前 //获取canvas容器 var can = document.getElementById('canvas'); //创建一个画布 va

  • 微信小程序学习笔记之页面配置与路由方式

    最近在学习回顾小程序的开发,将一些学习结果做个笔记.参考微信小程序官方文档:developers.weixin.qq.com/miniprogram- 一.小程序配置 1.全局配置 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. // 示例 { "pages": [ "pages/index/index", "pages/logs/index" ], &q

  • ASP.NET学习路线(详细)

    在此就向打算系统学习ASP.NET技术的初学者谈谈我的建议. 如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET. 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framewo

  • 收集学习asp.net比较完整的面向对象开发流程

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习

  • 比较完整的 asp.net 学习流程

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习

  • ASP.NET学习路线图浅谈

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习NETFramework.ASP.NET是建构在.NET Framework之上的技术,你对.NETFramework了解得越深,学习ASP

  • asp.net学习中发现的比较完整的流程

    如果你已经有较多的面向对象开发经验,跳过以下这两步:  第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!  第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,

随机推荐