什么是ADO.NET

时间:2010-08-30 07:46:43

标签: sql ado.net

我对理解ADO.NET感到困惑,在阅读了几篇文章后,我并不清楚什么是性能考虑。

  • 什么是ADO.NET以及性能考虑因素?
  • ADO.NET可能与SQL STORED PROCEDURES相关联,还是不同的东西?

谢谢你们!

4 个答案:

答案 0 :(得分:3)

ADO.NET是.NET框架的一个组件,允许您访问不同的数据源。存储过程是不同的:它是一个允许您查询关系数据库并在数据库内运行的函数。

因此,您可以使用ADO.NET来调用存储过程。举例来说:

using (var con = new SqlConnection(SomeConnectionStringToTheDatabase))
using (var cmd = con.CreateCommand())
{
    con.open();
    con.CommandText = "NameOfTheStoredProcdureYouWantToInvoke";
    con.CommandType = CommandType.StoredProcedure;

    var result = command.ExecuteNonQuery();
}

我们用来调用存储过程的类SqlConnectionSqlCommand是ADO.NET的一部分。

答案 1 :(得分:2)

Ado.net视为托管库,提供您需要(并可能使用)访问外部数据源的所有类和功能。这是最简单的思考方式。但由于它不是一个单独的库(因为它包含在.net库中),人们往往会感到困惑。我们可以说它是.net中的一个库。

可以在Wikipedia上找到更全面的解释。

存储过程是特定数据存储的一部分。 Ado.net使您能够以标准化方式调用这些存储过程。

MSDN的一个例子

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("\t{0}\t{1}\t{2}", reader[0], reader[1], reader[2]);
        }
        reader.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    Console.ReadLine();
}

您可以看到Ado.net类的使用:

  • SqlConnection
  • SqlCommand
  • SqlDataReader

因此,Ado.net为您提供了所有这些功能,因此您无需每次访问外部数据源(关系数据库,服务等)时都重新发明轮子。

答案 2 :(得分:1)

ADO.NET是.NET框架的一部分,它是数据库驱动程序和应用程序之间的层。 .NET应用程序中的所有数据库访问都通过ADO.NET进行。

数据库驱动程序通常是本机.NET驱动程序,但也可能类似于ODBC驱动程序。

通过ADO.NET例程,您可以使用SQL查询,SQL存储过程或直接表绑定来访问数据库。这些都是特定于数据库的,并且根据数据库和数据库驱动程序而有所不同,但是有一个SQL标准可以扩展数据库,所以至少有一些共同点。

您可以使用数据访问框架而不是ADO.NET,例如实体框架。但是,它们不会取代ADO.NET,它们仍然使用ADO.NET层来访问数据库。

答案 3 :(得分:1)

  

什么是ADO.NET?

通常,它是一种访问数据库(或其他类型的数据源,如csv文件)的技术。从程序员的角度来看,它只是一组库和类,他需要访问数据库及其数据库工件(如表,视图或存储过程)。

  

ADO.NET可能与SQL STORED PROCEDURES相关联,还是不同的东西?

您使用ADO.NET来访问托管代码中的存储过程(例如用C#或VB编写)。存储过程是一段代码(用例如PL / SQL或T-SQL编写),它驻留在数据库中。是的,它们是完全不同的东西。