QQ交流群:13033480
剛上大學的時候,很激動,也很興奮。其中,一個主要的興奮點,就是學校的圖書館…
館,大...;
書,多…
特別是大部頭的英文版的書,中學里是絕沒有的。
我興沖沖地借了一本《三國演義》,回來小心地打開,看到了這么一句:
“Life is long”……
我的心,涼了……
拔涼拔涼的............
這是曹操的那句千古名句嗎????
“人生幾何”????
我怎么就讀不出來這種味了呢????
生活是長的...,你哪怕給我譯成,生活是漫長的,也些許有點味哈......
直到后來,我學匯編語言的時候,才真真的體會到了,什么叫直譯,什么叫意譯…
匯編語言,有三種讀法,相應地,也就有三種譯法:
一種是,一句一句地讀,這樣子讀,主要是看看,每一句里,有沒有自己不熟悉的指令,如果直接就翻譯,沒法看;
一種是:一塊一塊地讀,但,是直譯,主要是看看,這一段,主要進行了什么操作,翻譯出來,好象說明了問題,但羅里巴羅嗦,你自己看着都煩;
第三種:一塊一塊地讀,但,是意譯,這時,你要真真地看出,這一段代碼,在干什么??
匯編語言是這樣的,什么語言,應該也都是這樣的…
我們來看看這段代碼吧:
string connectionString = "Server=.\\SQLEXPRESS;Database=NetShop;Trusted_Connection=SSPI"; string cmdText = "SELECT * FROM Category"; SqlConnection conn = new SqlConnection(); conn.ConnectionString = connectionString; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = cmdText; conn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Response.Write(rdr["Name"] + "<br/>"); } rdr.Close(); conn.Close();
這十四行代碼,有十一行,我們前面,已經講過了,相信你能理解,不需要我再說什么了,讓我們來讀一下這一段,三行代碼吧:
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Response.Write(rdr["Name"] + "<br/>");
}
一、一句一句地讀:
1、SqlDataReader rdr = cmd.ExecuteReader();
這一句,是聲明了一個SqlDataReader指針,它指向的是cmd.ExecuteReader()獲得的一個表格;
這個表格,是一個SqlDataReader類,這個類,在這里,主要是存放數據的,里面應該有幾行代碼,或者函數,幫助我們管理這個類里面的數據。
2、while (rdr.Read())
這一句里,while,大家都熟悉,rdr.Read(),是前進到SqlDataReader表格的下一行,如果存在下一行,就返回個true,如果不存在了,或者說沒有數據了,就返回個false。
這個SqlDataReader表格數據,只能一行一行的讀取,前進到哪一行,讀取哪一行,並且是處於連接狀態的。
3、Response.Write(rdr["Name"] + "<br/>");
這一句,主要是那個rdr[“Name”]了,好象不需要講什么,猜都能猜得出來,這是讀取SqlDatareader表格數據中,某一行的,“Name”中的值了。
二、一段一段地讀,直譯:
這是一個循環,每次循環,先判斷rdr.Read()返回的值是不是true,如果是true,就說明表格中還有一行數據,就讀取這一行數據中“Name”字段的值,並顯示到瀏覽器上,如果是false,就說明,表格沒有下一行數據了,循環就結束。這樣讀、這樣譯,好象差不多了。
三、一段一段地讀,意譯:
意譯,關鍵是要看這一段,倒底是干什么的了。
我是這樣翻譯的,這是一個“遍歷”,把SqlDataReader表格中的所有Name讀出來,顯示到到瀏覽器上。
言簡意賅,好象還有點味,不是嗎??
是的,這是一個遍歷,聽說過密碼的暴力破解吧?很血惺,很刺激吧?其實,那也只是一個遍歷,它的實質過程,就是用所有可能的密碼組合,一個一個,挨個試一遍。
你以前學的很多循環,從數組開始,到二維數組的時候,開始遇到嵌套循環,如果你用循環的眼光去讀,一會 i ,一會 j 地,相信很多剛學的人,頭都挺大的。其實,那都只是一個遍歷。就是把數組里的每一個數據,挨個訪問一次而已。
記往,今天我們學到的是“遍歷”,以后再看到這東東,你要能聯想到工會主席,說上這么一句:“哦,那是工會主席在挨家挨戶地了解民情,送溫暖呢.....”,我會更高興。