我对理解ADO.NET感到困惑,在阅读了几篇文章后,我并不清楚什么是性能考虑。
谢谢你们!
答案 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();
}
我们用来调用存储过程的类SqlConnection,SqlCommand是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编写),它驻留在数据库中。是的,它们是完全不同的东西。