zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/ctddjyds/p/7753168.html
Copyright © 2011-2022 走看看