|
Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹學(xué)習(xí)Linq,包括介紹Linq目標(biāo)是實(shí)現(xiàn)語言與數(shù)據(jù)的深度結(jié)合等方面。
上一個系列講了C#3.0的新特性,為學(xué)習(xí)Linq做好了鋪墊;接下來的一段時間轉(zhuǎn)入學(xué)習(xí)Linq,上述新特性也會在介紹的過程中提及到。
學(xué)習(xí)Linq
在我們的軟件中,數(shù)據(jù)的重要性不可言喻,特別是象ERP,CRM等等這類商業(yè)應(yīng)用軟件就是圍繞著數(shù)據(jù)轉(zhuǎn);然而數(shù)據(jù)的來源各種各樣,如存放在內(nèi)存中的業(yè)務(wù)對象、存放在xml文件的數(shù)據(jù)、SqlServer關(guān)系數(shù)據(jù)庫...這些數(shù)據(jù)源的讀取操作各不相同,相互之間的轉(zhuǎn)換也不是那么容易;為此VS.NET提供了各種技術(shù)來支持這些數(shù)據(jù)源的操作,如操作數(shù)據(jù)庫的ADO.NET,操作xml文件的API(XmlDocument, XmlReader, XPathNavigator等),以及一些存放在內(nèi)存中的數(shù)據(jù)的操作(數(shù)組,參數(shù)變量,類,泛型等等);如今在C#3.0中提供了一種新技術(shù)來整合處理各種數(shù)據(jù)操作的問題,這就是Linq;
Linq目標(biāo)是實(shí)現(xiàn)語言與數(shù)據(jù)的深度結(jié)合,Linq以統(tǒng)一的數(shù)據(jù)訪問方式訪問各種數(shù)據(jù)源,以相同的方式讀取數(shù)據(jù),象SQL語句一樣進(jìn)行查詢,而這些都是整合在我們熟悉的編程語言如C#,VB當(dāng)中,另外Linq是使用強(qiáng)類型,并提供編譯時檢查和VS的智能感知特性等。
下面我們以SQLServer為數(shù)據(jù)源,列舉一段代碼分析一下:
1. // ADO.NET中我們會用它提供的SqlConnection, SqlCommand,
SqlDataAdapter,SqlReader, DataSet, 和 DataTable等來訪問操作數(shù)據(jù)庫 ;
2. //使用SqlDataAdapter填充DataSet
3. using (SqlConnection conn = new SqlConnection(""))
4. {
5. DataSet ds = new DataSet();
6. SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers", conn);
7. da.Fill(ds);
8. }
9. //使用SqlDataReader讀取數(shù)據(jù)
10. using (SqlConnection connection = new SqlConnection(""))
11. {
12.
13. connection.Open();
14. SqlCommand command = connection.CreateCommand();
15. command.CommandText =
@"SELECT Name, Country FROM Customers WHERE City = @City";
16. command.Parameters.AddWithValue("@City", "Paris");
17.
18. using (SqlDataReader reader = command.ExecuteReader())
19. {
20. while (reader.Read())
21. {
22. string name = reader.GetString(0);
23. string country = reader.GetString(1);
24.
25. }
26. }
27. }
NET技術(shù):學(xué)習(xí)Linq經(jīng)驗(yàn)總結(jié),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。