2010-08-30 29 views
2

我對理解ADO.NET感到困惑,在閱讀了幾篇文章後,我並不清楚什麼是性能考慮。什麼是ADO.NET

  • 什麼是ADO.NET和性能考慮事項?
  • ADO.NET可能與SQL STORED PROCEDURES關聯或是不同的東西?

謝謝你們!

回答

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爲您提供了所有這些功能,因此您不必在每次訪問外部數據源(關係數據庫,服務等)時重新發明輪子。

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

ADO.NET是.NET框架的一部分,它是數據庫驅動程序和應用程序之間的層。在.NET應用程序中的所有數據庫訪問都通過ADO.NET。

數據庫驅動程序通常是本機.NET驅動程序,但它也可以是類似於ODBC驅動程序的東西。

通過ADO.NET例程,您可以通過使用SQL查詢,SQL存儲過程或直接表綁定來訪問數據庫。這些都是特定於數據庫的,並且取決於數據庫和數據庫驅動程序,但是數據庫有一個SQL標準可以擴展,所以至少有一些共同點。

有些數據訪問框架可以用來代替ADO.NET,比如實體框架。但是,它們並不取代ADO.NET,它們仍然使用ADO.NET層來訪問數據庫。

1

什麼是ADO.NET?

一般來說,它是一種訪問數據庫(或其他類型的數據源,如csv文件)的技術。從程序員的角度來看,它只是一組庫和類,他需要訪問數據庫及其數據庫構件(如表,視圖或存儲過程)。

ADO.NET可能與SQL STORED PROCEDURES關聯或是不同的東西?

您使用ADO.NET爲了訪問一段託管代碼(用C#或VB編寫)中的存儲過程。存儲過程是駐留在數據庫上的一段代碼(用PL/SQL或T-SQL編寫)。是的,他們是完全不同的東西。

相關問題