你的位置:首页 > 软件开发 > ASP.net > Java进击C#——语法之ADO.NET

Java进击C#——语法之ADO.NET

发布时间:2016-10-10 13:00:08
本章简言上一章讲到关于C#语法的基础部分。了解相关的基础部分之后我们就要去了解一下C#是什么样子访问数库的。C#把访问数据库这一部分的知识点叫作ADO.NET。即是JAVA常常讲到的JDBC这一部分的知识点了。笔者根据使用数据库方式的不同又分为有线连接和无线连接(关于有线和无线的 ...
本章简言

上一章讲到关于C#语法的基础部分。了解相关的基础部分之后我们就要去了解一下C#是什么样子访问数库的。C#把访问数据库这一部分的知识点叫作ADO.NET。即是JAVA常常讲到的JDBC这一部分的知识点了。笔者根据使用数据库方式的不同又分为有线连接和无线连接(关于有线和无线的叫法是笔者个人定义的。因为看了不同的书里面很多叫法)。不管是什么样子的叫法。只要明白有线是保持连接的状态下操作数据库。而无线是连接之后复制一份副本,关闭连接,对副本进行操作之后,在连接更新数据库。笔者认为如果只是使用的话,只要了解对应的几个相关的类就可以了。如果有搞研究的话,就是对他内部的一些机制进行学习了。那么这里只是讲到如何使用。

 ADO.NET的概念

由于本系列并不是主讲ADO.NET。所以这里笔者只会教上面定义有线连接方式相关的类。不管如何让我们先看一下ADO.NET类相关联的所有基类吧。这样子也方便我们下面的学习。

下面是ADO.NET的基类信息

DbConnection类:用于连接数库的类。相当于JDBC里面通过DriverManager.getConnection方法获得Connection接口对应的实例类。

DbCommand类:用于存放数据源执行的 SQL 语句或存储过程的类。相当JDBC里面的Statement接口。

DbDataReader类:从数据源读取行的一个只进流。即是执行SQL结果的存放地方。相当于JDBC里面的ResultSet接口

DbParameter类:用于表示DbCommand里面对应的参数。相当于JDBC里面的PreparedStatement的填充参数一样子。

DbParameterCollection类:不用看就知道DbParameter类的集合类。

DbTransaction类:用于事务的类。相当于JDBC里面的conn.setAutoCommit(false)的功能。这个不会不清楚吧。

DbDataAdapter类:这个类常用于DataSet一起用。也就是说他是笔者上面定义的无线连接方式。

DbCommandBuilder类:用于协调 DataSet 的更改与关联数据库的单表命令。即是跟上面的DbDataAdapter类常常一起用。

DbConnectionStringBuilder类:用于生成连接字符串。

事实上ADO.NET所有的类都是基于上面的基类。想要使用ADO.NET的话,只要了解上面的基类就可以了。如果更深入的话,笔者也不清楚什么做了。至于上面的基类C#把他们按类层次划分为连接类和非连接类。如下面笔者在网络上找到的一张图片。我们就可以很清楚的知道哪一些是连接类,哪一些是非连类。

Java进击C#——语法之ADO.NET

显然连接就是连接数库时用的类,非连接就是在没有数据库的情况相关类了。而上面笔者是根据操作数据库模式进行划分的。希望不要误导各位的理解。上面左边的方框里面就是属于连接类,右边的方框是属于非连接类。

连接类:DbConnection类、DbCommand类、DbTransaction类、DbParameter类、DbDataAdapter类

非连接类:DataTable类、DataRow类、DataRowCollection类、DataColumn类、DataColumnCollection类、DataRelation类、DataRelationCollection类

学习ADO.NET,事实上就是学习ADO.NET对应的类。有了我们对上面类的一定的了解之后。笔者只要自己动手写一个小例子就可以理解和明白了。

ADO.NET的例子

笔者的数据库用是SQL Server 2008。新建一个数据库,笔者将他命名为Ado。在新建一个张表为Catalogs。如下SQL语句

表的SQL:

CREATE TABLE [dbo].[Catalogs](  [ID] [int] NOT NULL,  [CatalogName] [nvarchar](50) NULL,  [CatalogCode] [nvarchar](50) NULL, CONSTRAINT [PK_Catalogs] PRIMARY KEY CLUSTERED (  [ID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

原标题:Java进击C#——语法之ADO.NET

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。