我对理解ADO.NET感到困惑,在阅读了几篇文章之后,我不清楚什么是绩效考虑。
谢谢你们!
发布于 2010-08-30 07:49:28
将Ado.net看作是一个托管库,它提供了访问外部数据源所需的所有类和功能(以及可能使用的)。这是最简单的思考方法。但是,由于它不是一个单独的库(因为它包含在.net库中),人们往往会感到困惑。我们可以说它是.net内部的一个图书馆。
在维基百科上可以找到更彻底的解释。
存储过程是特定数据存储的一部分。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类的使用:
SqlConnectionSqlCommand和SqlDataReader因此,Ado.net为您提供了所有这些功能,所以您不必每次想要访问外部数据源(关系数据库、服务等)时都重新发明轮子。
发布于 2010-08-30 07:59:35
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的一部分。
发布于 2010-08-30 08:08:32
ADO.NET是.NET框架的一部分,它是数据库驱动程序和应用程序之间的层。.NET应用程序中的所有数据库访问都通过ADO.NET进行。
数据库驱动程序通常是本机.NET驱动程序,但也可以类似于ODBC驱动程序。
通过ADO.NET例程,您可以通过使用SQL查询、SQL存储过程或直接表绑定来访问数据库。这些都是特定于数据库的,并且取决于数据库和数据库驱动程序,但是有一个数据库扩展的SQL标准,所以至少有一些共同点。
您可以使用一些数据访问框架来代替ADO.NET,比如实体框架。但是他们没有替换ADO.NET,他们仍然使用ADO.NET层来访问数据库。
https://stackoverflow.com/questions/3598699
复制相似问题