• ADO.net的基本用法


     ADO.net由DataSet和Data Provider组成

    DataSet:非连接的核心组件。独立于任何数据源的数据访问,所以可访问各种数据库

    Data Provider:用于连接数据库、执行命令、检索结果

    Ado.Net 概述

    ->SqlConnection

            ->连接池:可以通过连接字符串配置连接池

            ->对象池技术:HttpApplication :Asp.net

            ->生产者       消费者            线程

    ->SqlCommand

            ->ExcuteNonQuery() 执行非查询类的sql脚本,返回影响的行数

            ->ExcuteScalar() 执行sql,返回第一行第一列的值

            ->ExcuteReadr() 返回SqlDataReader

                    ->Reader 默认指向 数据行

                    ->Read() 方法执行一次,指针向下走一次

    命名空间

    SQLServer数据提供程序  System.Data.SqlClient

    OLEDB的数据提供程序  System.Data.Oledb

    ODBC的数据提供程序  System.Data.Odbc

    Oracle数据提供程序 System.Data.OracleClient

    函数

    Connection 提供与数据源的连接    SqlConnection

    Command 执行数据库命令的对象  SqlCommand

    DataReader 从数据源中提供快速的,只读的数据流 SqlDataReader

    DataAdapter 提供DataSet对象与数据源的桥梁。Fill   Update

    Ado.Net访问数据的步骤

    1、连接到数据库

    1. SqlConnection conn = new SqlConnection();
    2. //Sql server身份验证(安全连接) 1、数据源 2、数据库名 3、账号 4、密码
    3. conn.ConnectionString = "server=.;database=TblClass;uid=sa;pwd=123456";
    4. //Windows身份验证(可信连接) 1、数据源 2、数据库名 3可信连接(Integrated Security=True/SSPI)
    5. conn.ConnectionString = "server=.;database=MySecondDb;Integrated Security=SSPI";
    6. //conn.Databass 要连接的数据库名称
    7. //conn.DataSource 数据库所在服务器的名称
    8. //conn.State 连接的状态
    9. //conn.ConnectionTimeout 15s

    connection.State   //可以查看连接信息

    connection.Database  //可以查看连接的数据库名

    connection.ServerVersion //可以查看连接的Sql Server的版本(注意:查询这个需要在打开连接之后,不打开连接默认是关闭的)

    connection.ConnectionTimeout //查看超时时间(默认超时时间15秒,超过15秒没有连上就会报错),要想加长超时时间可以在字符串里加 timeout=30

    2、打开连接

    conn.Open();

    3、创建执行命令对象(创建命令)

    1. SqlCommand sqlCommand = new SqlCommand();
    2. //设置连接对象,也就是这条sql命令该在哪个服务器,哪个数据库中去执行
    3. sqlCommand.Connection = connection;
    4. //设置sql命令
    5. string sql = "insert into Students(name,Age) values('文豪','a')";
    6. sqlCommand.CommandText = sql;
    7. //也可以直接使用构造函数
    8. string sql2 = "insert into Students(name,Age) values('豪文','a')";
    9. SqlCommand cmd = new SqlCommand(sql2, connection);

    4、执行命令

    1. //执行非查询类(增删改)的sql脚本,返回影响的行数
    2. sqlCommand.ExecuteNonQuery();
    3. //执行sql,返回第一行第一列的值,一般获总条数
    4. sqlCommand.ExecuteScalar("select count(*) from Students",connection);
    5. //执行sql返回数据
    6. SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

    5、关闭连接

    1. //关闭连接
    2. conn.Close(); //Close()后还可以再打开
    3. //释放连接
    4. conn.Dispose(); //Dispose后,连接字符串也没有,重新设置练级字符串

    有的时候可能会忘记close,这时候可以使用 using。用了using之后无需close

    GC(垃圾回收器)只能回收托管资源。SqlConnection属于非托管资源,故需要手动释放 

    实现了IDisposable接口的函数才能在using里面实现

    1. using (SqlConnection connection = new SqlConnection(str))
    2. {
    3. connection.Open();
    4. Console.WriteLine(connection.State);
    5. Console.WriteLine(connection.Database);
    6. Console.WriteLine(connection.ServerVersion);
    7. Console.WriteLine(connection.ConnectionTimeout);
    8. }

  • 相关阅读:
    SqlBulkCopy - 批量写入数据库
    【VR开发】【Unity】【VRTK】3-VR项目设置
    为什么说制造企业需要部署MES管理系统
    Nginx的相关库简介
    c++类型转换和异常
    R语言学习:RFM分析,rfm包
    高性能零售IT系统的建设07-通过一次重大危机感受Redis从使用到失智到理性的治理
    学习队列,Java实现
    jsp+ajax+json练习(表单数据检测)
    线性代数 | 最小二乘法的直观理解
  • 原文地址:https://blog.csdn.net/m0_60939437/article/details/126466012