ADO.Net

ADO.NET 是 .NET 框架(.NET Framework)中的一个数据库访问架构,ADO是ActiveX Data Objects的缩写是一个COM组件库。用于实现 .NET 应用程序对于数据库的访问。

旧的版本中还有  System.Data.OracleClient,微软已不再维护,使用 ODP.Net连接Oracle;

ADO.NET六大对象分别是:

1、Connection(连接数据库,事物处理也使用此对象)

2、Command(执行T-SQL语句--返回数据、修改数据、运行存储过程及发送或检索参数信息的数据库命令)

3、DataAdapter(主要功能填充DataSet,在修改Dataset对象中的数据后通知数据库更新数据到数据库)

4、DataReader(读取数据库,一种只读模式,只向前的)

5、DataSet(数据集-ADO.Net的核心概念,可以把它当作是存在于内存中的数据库),可以包含一组DataTable,及这些表之间的关系;

6、DataTable(数据的容器):由一个或多个DataColumn组成,每个DataColumn由一个或多个包含数据的DataRow组成;

Connection类有四种:SqlConnectionOleDbConnectionOdbcConnectionOracleConnection

SqlConnection类的对象连接SQL Server数据库;OracleConnection 类的对象连接Oracle数据库(Oracle的版本小于11使用此种方式,当版本为11及以上时使用ODP.Net);OleDbConnection类的对象连接支持OLE DB的数据库,如Access;而OdbcConnection类的对象连接任何支持ODBC(开放数据库互联)的数据库。

与数据库的所有通讯最终都是通过Connection对象来完成的。

SqlConnection 的连接字符串(ConnectionString)

加入命名空间:using System.Data.SqlClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";               

CommandType用来定义某条命令是SQL子句、存储过程的调用、还是完整的表语句(仅从给定的表中选择所有行和列);TableDirect命令类型只对OleDb提供程序有效;

ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是 SQL="CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)"那么在表创建成功后该方法返回 –1。

 ExecuteScalar():执行SQL,(如果SQL是查询Select)返回查询结果的第一行第一列,如果(如果SQL不是查询Select)那 么返回未实列化的对象,因为对象未实列化,所以返回结果不能ToString(),不能Equals(null),也就是说返回结果没有任何作用

 ExecuteReader方法执行SQL,(如果SQL是查询Select)返回查询结果的集合,类型是 System.Data.OleDb.OleDbDataReader,你可以通过此结果,获取查询的数据。如果(如果SQL不是查询Select)那么 返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF);

ExecuteXmlReader() ---返回一个XmlReader对象,可以遍历从数据库中返回的XML片段;适应于SqlClient和ODP.net提供的程序

OleDbConnection连接各种数据源 ,由于数据源不同,相应的连接字符串也会不同。

加入命名空间:using System.Data.OleDb;

连接 SQL Server:  string conString = "Provider=SQLOLEDB.1; Persist Security Info=False; user id=用户名; Database=数据库名; data source=COMPUTER; ";

       OleDbConnection myconnection = new OleDbConnection(conString);

                      myconnection.open();

连接 Access:  string conString = "Provider=Microsoft.Jet.OLEDB.4.0;  data source=C:\Database1.mdb; Persist Security Info=False;";

           OleDbConnection myconnection = new OleDbConnection(conString);

                             myconnection.open();

(也可以通过建立.udl文件来获得字符串)

连接 Oracle:  

 string conString = "Provider=MSDAORA;  user id=用户名; password=密码; data source=db; Persist Security Info=False;";

string oradb = "Provider=OraOLEDB.Oracle;Data Source=water;User Id=modis;Password=modis;";

         OleDbConnection myconnection = new OleDbConnection(conString);

                          myconnection.open();

OleDb方式,微软和Oracle公司各自提供了OleDb的驱动程序,使用方法的差别很少。

引用类库:微软的只需要System.Data.dll;若用Oracle的驱动,虽然也只要引入System.Data.dll,但前提是首先安装Oracle针对.Net的数据访问组件
连接字符串:provider--微软“provider=MSDAORA;”;Oracle-“provider='OraOleDb.Oracle';”。前者已经不怎么使用;后者需安装Oracle客户端;

未在本地计算机上注册“OraOLEDB.Oracle”提供程序解决方案的错误处理:

regsvr32  E:appAdministratorproduct11.2.0dbhome_1oledblibOraOLEDB11.dll

OracleConnection连接Oracle---微软已不再维护,建议使用Oracle的ODP.Net连接

加入命名空间:using System.Data.OracleClient;

连接数据库: string conString = "data source=IP地址; Database=数据库名;user id=用户名; password=密码";

           OracleConnection myconnection = new OracleConnection(conString);

            myconnection.open();

 注意:使用不同的Connection对象需要导入不同的命名空间。OleDbConnection的命名空间为System.Data.OleDb。SqlConnection的命名空间为System.Data.SqlClient。OracleConnection的命名空间为System.Data.OracleClinet。

DBHelpers是一个简单但功能强大的库,用于使用简单的ADO.NET数据库访问组件。

DBHelpers包含哪些特征

Async(异步)、Batch execution(批量执行脚本)、Custom converters(自定义类型转换)、

Multi table retrieval(多结果集查询)、Easy safe parameterized DbCommand(简单安全的参数化)、

Automatic mapping of objects(自动映射类型)、Built in paging support(内置支持分页)、等等。

DBHelpers内置方法

ExecuteNonQuery、ExecuteReader、ExecuteScalar、

ExecuteDataTable、ExecuteDataSet、ExecuteArray、ExecuteDictionary、ExecuteObject、ExecuteList、

ExecuteNonQueryAsync、ExecuteObjectAsync、ExecuteListAsync

github下载地址:

https://github.com/nvivo/dbhelpers

原文地址:https://www.cnblogs.com/ctddjyds/p/7753168.html