zoukankan      html  css  js  c++  java
  • Ado.Net

    一、Ado.Net
    一种数据访问技术,让应用程序可以连接数据库,并以各种方式来操作其中的数据。一个COM组件库,.Net中的数据,优先选择的数据访问接口。
    组成:DataSet---非连接的核心组件。独立于任何数据源的数据访问,多种不同的数据源
        DataProvider(数据提供程序):用于连接数据库、执行命令、检索结果。
    Connection 提供与数据源的连接  SqlConnection
    Command 执行数据库命令的对象 SqlCommand
    DataReader 从数据源中提供快速的,只读的数据流 SqlDataReader
    DataAdapter 提供DataSet对象与数据源的桥梁。Fill Update
    Ado.Net访问数据的步骤:
    连接数据库,打开连接,创建执行命令对象(创建命令)执行命令 关闭连接
    SqlConnection类 继承于 DbConnection 抽象基类,不能被实例化。提供与SqlServer连接。
    常用属性:ConnectionString State DataBase DataSource
    State:Closed 已关闭、Open打开、Connection 正在连接、Exxcuting 正在执行命令
       Fetching 正在检索、Broken 连接中断
    1.创建连接
     SqlConnection conn = new SqlConnection();
    //打开数据库的钥匙
    conn.ConnectionString = "server=.;databse=PhoneBookDb;uid=rl;pwd=12345"
    2.打开连接
     conn.Open();
    3.创建执行命令对象
    conn.CreateCommand();
    4.执行命令
    5.关闭连接
    conn.Close();//关闭连接
    连接字符串:
    Sql server 身份验证
    Data Source 数据源  Initial Catalog 数据库名 User Id 账号 PassWord 密码
    windows身份验证
    Data Source 数据源  Initial Catalog 数据库名 Integrated Security=True/SSPI或者
    Trusted_Connection=True
    Oracle
    Data Source 数据源 User Id 账号 PassWord 密码
    MYSQL
    Data Source 数据源  Initial Catalog 数据库名 User Id 账号 PassWord 密码
    Access
    Provider=Microsoft.Jet.OLEDB.4.0 Data Source 文件绝对路径 User Id PassWord 
    可以使用SqlConnectionStringBuild类来生成连接字符串
    为了程序的灵活性,一般配置到配置文件中进行存储App.config
    配置到connectionString节点中
    using System.Configuration
    string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString
    一般使用connectionString
    
    连接池:
    非常耗时耗力。经历几个阶段:建立物理通道,与服务器初次握手,分析连接字符串,分身验证
    容器:存放一定数量的数据库服务器的物理连接。
    需要:容器里取出一条空闲的连接,而不是创建一条新的连接
    作用:减少了连接数据库的开销,从而提高应用程序的性能。
    分类:同一时刻同一应用程序域可以有多个不同类型的连接池
    什么标识来区分:进程、应用程序域、连接字符串、windows标识共同组成
    对同一程序域来说,由连接字符串来区分
    如何分配:根据连接请求的类型,找到与它相匹配的连接池,尽力的分配一条空闲的连接。
    已达到了最大连接数,等待,直到有空闲的连接。
    移除无效的连接,不能正确连接到数据库服务器的连接。连接池存储的数据库服务器连接数量有限。无效连接应当移除,不然浪费连接池空间,连接池管理器自己会处理。
    回收连接:释放使用完的连接,应当即时关闭或释放,conn对象的Close Dispose连接回连接池
    连接池的使用:最大连接数:Max Pool Size 100  最小连接数:Min Pool Size 0
                             Pooling 是否启用连接池 true   pooling = falise是禁止启用连接池
        启用连接池比不启用连接池效率高很多
    只要连接字符串一样,就会共用一个连接池
    SqlCommand---适用于数据量小的
    Connection:SqlCommand对象使用的SqlConnection
    CommandText:获取或设置要执行的T-SQL语句或者存储过程
    CommandType:CommandType.Text--执行的是一个Sql语句
                      CommandType.StoredProcedure--执行存储过程
    Parameters:SqlCommand对象的命令参数集合、空集合
    Transacction:获取或设置要在其中执行的事务
    SqlCommand cmd = new Command(sql,conn)---conn是连接对象
    执行命令:
    cmd.ExecuteNonQuery()--执行T-SQL语句,并返回受影响的行数--命令类型 增删改 --DML
    拼接式sql,容易被SQL注入--conn必须是Open
    cmd.ExecuteScalar()--conn必须是Open
    执行查询语句或存储过程,返回查询结果中的第一列第一行,只返回一个值  查询--DQL
    也可以使用count(1)查询返回的数量;查询标识列:select @@identity
    cmd.ExecuteReader()--返回一个对象SqlDataReader--游标-指针,只进不出,数据流、只读
    SqlParameter--SqlCommand对象的参数
    DbType--参数的SqlDbType(数据类型没数据库的类型而言)
    Direction--参数的类型L输入,输出,输入输出,返回值参数
    ParameterName--参数的名称
    Size 最大大小,字节为单位
    value 参数的值
    SqlValue--作为SQL类型的参数的值
    防止注入和转义
    注入和转义怎么解决
    使用Parameter参数的传递来防止注入
    SqlDataReader
    提供一种从SQLSERVER数据库中读取只进的行流的方式。
    特点:快速的、轻量的、只读的,遍历访问每一行数据的数据流,向一个方向,一行一行的,不
    能向后读取,不能修改数据。
    缺点:不灵活,只适合数据小的情况,读取数据,一直占用连接
    读取方式:Read()获取第一行的数据,再次调用Read()方法
    当调用Read()方法时返回False时,就表示不再有数据行。
    注意:连接对象必须一直保持Open状态,使用完成后,应该马上调用close()关闭,不然Reader一直占用连接。
    创建方式:时不能直接构造的,cmd.ExecuteReader()来创建。关闭reader对象时,就会自动关闭连接。读取时,尽量使用与数据库字段类型相匹配的方法来去的对应的值。
    DataTable:
    DataSet:数据在内存中的缓存(数据库) Ado.Net核心组件。DataTable:内存中一个表
    结合DataAdapter使用;列:DataColumn 行:DataRow
    常用属性:Columns 列集合 Rows 行的集合 Contains约束的集合 DataSet:DataTable所属的DataSet
    方法:AcceptChanges() 提交更改
             RejectChanges() 回滚更改
       Clear() 清空数据
              Copy() 复制架构和数据
       Clone() 只复制架构,不包含数据
    DataSet:Ado.Net的核心组件
    由一组DataTable组成
    DataRelation:主外键约束,唯一约束
    SqlDataAdapter:适配器(桥接器):DataSet数据之间检索和保存数据的桥梁。
                             SqlDataAdapter    和    SqlDataReader的    区别:
    速度:        慢(数据少不明显)       快
    数据量:        大                       小
    内存:        大                       小
    连接:        断开与连接            一直占用
    读取方式:    一次加载到内存中            读一条丢一条,只能进不能退
       ,任意读取,灵活           不灵活、不可修改
       可修改                    
    事务:一组操作,一次性提交,回滚,结果:成功,失败
    执行过程:开启--成功就提交,失败就回滚,事务放在存储过程中


























    成功在commit tran 下return1,失败在rollback tran回滚return
    0,返回一个状态 填充DataSet有参数和无参数,可以一个或多个结果集,在da.Fill前面加conn.Open()后面加conn.Close()这样填充比较快

  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/renleiblog/p/13329176.html
Copyright © 2011-2022 走看看