• ADO.NET


    ADO.NET这个词之前听过很多次,但是没有去了解,但是这次不得不看一下。。

    总的来说是用于操纵数据库的标准/接口/框架,确切不知道应能改如何形容。

    似乎在此之前,操纵数据库需要一直维持一个连接,这对于很多应用来说应该是不可接受的,很多操作就是一个请求,进行一些CRUD。ADO.NET的描述是随用随开连接,现在我在使用时,觉得这种方式是司空见惯的,不了解在此之前是何种方式。。

    ADO.NET有许多Provider,对应可能不同的数据库连接方式,或者接口使用方式。以一个sqlclient的provider为例子的代码:

    
    using System;
    using System.Data;
    using System.Data.SqlClient;
    

    class Program
    {
    static void Main()
    {
    string connectionString =
    "Data Source=(local);Initial Catalog=Northwind;"
    + "Integrated Security=true";

        // Provide the query string with a parameter placeholder.
        string queryString =
            "SELECT ProductID, UnitPrice, ProductName from dbo.products "
                + "WHERE UnitPrice > @pricePoint "
                + "ORDER BY UnitPrice DESC;";
    
        // Specify the parameter value.
        int paramValue = 5;
    
        // Create and open the connection in a using block. This
        // ensures that all resources will be closed and disposed
        // when the code exits.
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            // Create the Command and Parameter objects.
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@pricePoint", paramValue);
    
            // Open the connection in a try/catch block. 
            // Create and execute the DataReader, writing the result
            // set to the console window.
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine("	{0}	{1}	{2}",
                        reader[0], reader[1], reader[2]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
    

    可以看到,基本是

    1. 通过ConnectionString创建一个Connection
    2. 构造一个SqlCommand
    3. 打开Connection执行Command,获取结果

    这里获取结果上,有DataReader和DataSet两种方式。实际上DataSet内部也是调用的DataReader。

    想到上一次面试就被问到了DataReader和DataSet的差别,当时完全不了解。。。现在看来,DataReader是在直接读取结果不需要进一步操作时使用的,由于不需要将数据转存到DataSet中,效率高一些。

    在使用这些Provider上,还是有很多需要了解的地方,比如提供出来的各种街口,各种Provider的概念等等。

  • 相关阅读:
    CSS3中的opacity透明度属性的继承问题如何解决
    webstorm前端开发工具vue环境配置及运行项目
    new String(getBytes(ISO-8859-1),UTF-8)中文编码避免乱码
    超详细多线程讲解
    jQuery mobile 核心功能
    解读四大移动web应用开发框架真相
    2014,成为更好程序员的7个方法
    window8.1使用之快捷键
    C#深入浅出 关键字(一)
    C#深入浅出 C#语法中的重中之重——委托(四)
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12607927.html
Copyright © 2020-2023  润新知