C 之LinQ資料庫

2022-05-07 11:57:49 字數 1431 閱讀 5929

一:與linq有關的語言特性

1.隱式型別

(1)源起

在隱式型別出現之前,

我們在宣告乙個變數的時候,

總是要為乙個變數指定他的型別

甚至在foreach乙個集合的時候,

也要為遍歷的集合的元素,指定變數的型別

隱式型別的出現,

程式設計師就不用再做這個工作了。

(2)使用方法

來看下面的**:    

var a = 1; //int a = 1;

var b = "123";//string b = "123";

var myobj = new myobj();//myobj myobj = new myobj()

上面的每行**,與每行**後面的注釋,起到的作用是完全一樣的

也就是說,在宣告乙個變數(並且同時給它賦值)的時候,完全不用指定變數的型別,只要乙個var就解決問題了

(3)你擔心這樣寫會降低效能嗎?

我可以負責任的告訴你,這樣寫不會影響效能!

上面的**和注釋裡的**,編譯後產生的il**(中間語言**)是完全一樣的

(編譯器根據變數的值,推導出變數的型別,才產生的il**)      

(4)這個關鍵字的好處:

你不用在宣告乙個變數並給這個變數賦值的時候,寫兩次變數型別

(這一點真的為開發者節省了很多時間)

在foreach乙個集合的時候,可以使用var關鍵字來代替書寫迴圈變數的型別

(5)注意事項

你不能用var關鍵字宣告乙個變數而不給它賦值

因為編譯器無法推導出你這個變數是什麼型別的。

2.匿名型別

(1)源起

建立乙個物件,一定要先定義這個物件的型別嗎?

不一定的!

來看看這段**

(2)使用 

var obj = new  };

console.writeline(obj.empty);//另乙個物件的屬性名字,被原封不動的拷貝到匿名物件中來了。

console.writeline(obj.mytitle);

console.readkey();

new關鍵字之後就直接為物件定義了屬性,並且為這些屬性賦值

而且,物件建立出來之後,在建立物件的方法中,還可以暢通無阻的訪問物件的屬性

當把乙個物件的屬性拷貝到匿名物件中時,可以不用顯示的指定屬性的名字,這時原始屬性的名字會被「拷貝」到匿名物件中

(3)注意    

如果你監視變數obj,你會發現,obj的型別是anonymous type型別的

不要試圖在建立匿名物件的方法外面去訪問物件的屬性!

(4)優點

這個特性在**開發中,序列化和反序列化json物件時很有用

C 使用LINQ訪問資料庫

c 的linq方式訪問資料庫無疑是非常方便的,下面給出了使用linq方式訪問mssql的基本方法。首先宣告命名空間using system.data.sqlclient 再使用sqlconnection類連線,sqlcommand類執行sql命令,結果返回給sqldatareader類或其它類。各類...

linq 資料庫操作封裝

using system using system.collections.generic using system.linq using system.text using crm.model using system.configuration using system.linq.express...

LINQ查詢Sql Server 資料庫

簡單查詢 1.首先 新建乙個linqtosql類檔案.把需要查詢的表,拖入類檔案的設計介面.接下來就可以使用它了.2.頁面拖乙個gridview 表資訊 3.後台 資訊標題 info.mess title,資訊內容 info.mess content 繫結資料 gridview1.datasourc...