zoukankan      html  css  js  c++  java
  • ADO.NET 基础入门01

    ADO.NET的核心类

    1. DataSet 独立于任何数据源的数据访问,数据源的数据暂存到DataSet中,对于用户来说,使用DataSet访问数据时,数据源是透明的。
    2. Data Provider 用于连接数据库、执行命令、检索结果。
    3. Connection 提供与数据源的连接
    4. Command 执行数据库命令对象
    5. DataReader 从数据圆中提供快速的只读的数据流
    6. DataAdapter 提供DataSet对象与数据源的桥梁

    连接池

    1.由于建立连接时耗时耗力(建立物理通道,与服务器初次握手,身份验证,运行检查等等,

    ADO.NET为我们引入了连接池的概念。

    连接池中存放了一定数量的与数据库服务器的物理连接。当我们需要连接时,从连接池中取出一条空闲的连接,而不是创建一条新的连接。使用完后关闭该连接后,该连接又会重新回到连接池中。这样就能有效减少连接数据库的开销。

    2.分类。同一时刻同一应用程序域可以有多个不同类型的连接池。对于同一程序域来说,由连接字符串来区分。即如果连接字符串不同,那么就会有不同的连接池。

    3.如何分配。

    根据连接请求的类型,找到与它相匹配的连接池,如果有,尽力分配一条空闲连接,返回这条连接,如果没有,则会创建一个新的连接添加到连接池中。如果达到了最大连接数,则会等到,直到有空闲连接可用。

    4.移除无效连接。不能正确的连接到数据库服务器的连接,由于连接池存储的与数据库服务器的连接数量是有限的,需要及时移除,否则会浪费资源空间。

    5.测试连接池的存在。默认情况下,Ado.Net默认是启用连接池的。

     连接字符串是可以控制连接池的行为的。

     Max Pool Size:最大连接数

     Min Pool Size:最小连接数

     Pooling 是否启用连接池 true

    6.使用SqlCommand来执行SQL语句或存储过程,对于存储过程一定是事先在数据库中已经写好的存储过程。

    7.连接使用时的注意事项,即最晚打开,最早关闭。

    8.ExecuteNonQuery方法、ExecuteScalar方法、ExecuteReader方法的区别

    ExecuteNonQuery(): SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),方法将返回操作所影响的记录条数。

    ExecuteScalar(): SQL语句是SELECT查询,则仅仅返回查询结果集中的第1行第1列,而忽略其他的行 和列。该方法所返回的结果为object类型,在使用之前必须强制转换为所需的类型。如果SQL语句不是SELECT查询,则返回结果没有任何作用。

    ExecuteReader():提供了一个流的概念用于实时从数据库中读取数据,所以必须保证该方法调用前不能关闭数据库连接。返回的DataReader 对象可用于读取多条数据。

    以下是访问存储在局域网中某台计算机上的mysql数据:

                //连接数据库,mysql数据库存放在192.168.0.103上
                string connectstr = "Server=192.168.0.103;Port=3306;database=test;UserId=merlinzjl;Password=qwer15751002481_Zjl";
                using (MySqlConnection mysqlconnection = new MySqlConnection(connectstr))
                {
                    mysqlconnection.Open();
    
                    string text = "SELECT * FROM user where sex=@sexval";
                    MySqlParameter[] paramters = new MySqlParameter[1];
                    paramters[0] = new MySqlParameter();
                    paramters[0].ParameterName = "@sexval";
                    paramters[0].Value = "f";
    
                    MySqlCommand sqlcmd = new MySqlCommand(text,mysqlconnection);
                    sqlcmd.Parameters.Add(paramters[0]);
    
                    MySqlDataReader reader = sqlcmd.ExecuteReader();
    
                    while(reader.Read())
                    {
                        Console.WriteLine(reader[0] + "," + reader["sex"]);
                        Console.WriteLine("--------------------------------");
                    }
    
                    mysqlconnection.Close();
                }
    

      

  • 相关阅读:
    get与post的区别
    细数28个服务器端控件
    学习笔记
    是Attribute,还是Property
    学习日记
    C#常见面视题(附答案)
    扩展GridView(八)——导出为Excel
    如何实现ObjectDataSource与GridView的分页操作
    asp.net程序性能优化总结
    Array和ArrayList的异同点
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/14165820.html
Copyright © 2011-2022 走看看