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

  • 相关阅读:
    012.Nginx负载均衡
    011.Nginx防盗链
    010.Nginx正反代理
    009.Nginx缓存配置
    附007.Docker全系列大总结
    附024.Kubernetes全系列大总结
    008.Nginx静态资源
    007.Nginx虚拟主机
    006.Nginx访问控制
    005.Nginx配置下载站点
  • 原文地址:https://www.cnblogs.com/ctddjyds/p/7753168.html
Copyright © 2011-2022 走看看