[C#]把「ASP.NET專題實務」一書的範例,從 VB語法轉成C#

這三天的連續假期,我都在做相同的事。
第一,幫忙照顧小孩。
第二,把手邊的範例(VB語法),改成C#。

感想就是:還是VB簡單好用!但用了C#之後,許多觀念與作法會更清晰嚴謹。

這三天的連續假期,我都在做相同的事。

第一,幫忙照顧小孩。

第二,把手邊的範例(VB語法),改成C#。因為 [廣告]本書 "可能" 推出 C#版 (ASP.NET專題實務 / 文魁P8187)

感想就是:還是VB簡單好用!但用了C#之後,許多觀念與作法會更清晰嚴謹。

[置頂]ASP.NET專題實務(C#版),2009 二月推出(售價650元/文魁/書號P09027)  

 

以本書(新書上市-- ASP.NET專題實務(文魁出版) )的第十章範例來比較:

1. 資料庫連結字串,已經寫好(存在)Web.Config檔裡面。

C#語法 -- SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString);

VB語法 -- Dim Conn As SqlConnection = New SqlConnection(WebConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString);

 

2. 擷取 GridView內部的某一列、某一欄位的值

C#語法 -- TextBox my_test_time = (TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0];

VB語法 -- Dim my_test_time As TextBox = GridView1.Rows(e.RowIndex).Cells(4).Controls(0)

              或是用 CType(GridView1.Rows(e.RowIndex).Cells(4).Controls(0), TextBox)來作轉換,強制轉成TextBox型態

 

3. SqlDataSource的 新增/刪除/修改 T-SQL指令與參數

C#語法 -- myAdapter.UpdateCommand.Parameters.Add("@title", SqlDbType.VarChar, 50);
                  myAdapter.UpdateCommand.Parameters["@title"].Value = my_title.Text;

VB語法裡面的陣列 or Collection(集合),是用()。而C#使用[ ]

以前用VB語法寫慣的程式,現在改寫成C#,會更瞭解這句程式碼在表達些什麼。

而不是一路傻呼呼地以()用到底......反正VB隨便寫程式都很容易過、很容易就會Run

如果寫C# 卻搞不清楚 [ ] 與 (),那麼就會常常遇見這種怪怪的錯誤訊息:

編譯器錯誤訊息: CS0118: 'XXXXXX 是 'Variable',但卻當成 '方法' 使用

 

4.  此外,C#對於輸出值的要求也比較高,不像VB語法會自動作些轉換,在寫程式時也會更嚴謹地去思維。

例如:VB語法,你抓到一個數字「字串」(如Dim num As String = "123"),拿他來運算,大部分都會正常運作。

但C#語法很嚴謹,一定會出錯。必須強制轉換成 整數才能作運算,要用 Convert.ToInt32(num) 或是 Int.Parse(num)才行!

 

但平心而論,在VS 2008上面開發程式,使用VB語法真得很好用。任何錯誤都會立刻提示。

那怕是打錯字、或是一些小細節,都會主動提醒您。      有時候,我甚至覺得在VS 2005/2008上寫VB語法,是一種享受

但.....使用 C#的話,那麼.....大部分都要等到執行才會知道,一翻兩瞪眼。

自己心臟不強的話,還真的會一肚子氣

舉例來說:File 與 Log #2----[圖片版]訪客計數器(用.txt檔案來記錄)  這個範例,我改成 C#語法,花了兩個小時,氣死我了!!!!

 

5. 把這個範例「DataReader的標準範例 for ASP.NET 2.0 / 3.5」改成 C#版。

SqlConnection Conn = new SqlConnection("資料庫連接字串");
SqlCommand cmd = new SqlCommand("select * from 資料表", Conn);
SqlDataReader dr;

try
{
    Conn.Open(); //這時候才連結DB
    dr = cmd.ExecuteReader(); // 這時候執行SQL指令,取出資料

    //註解:從資料庫裡面,把資料撈出來之後,交給這兩個控制項「呈現」在畫面上~
    dr.Read();
    TextBox1.Text = dr["title"].ToString();
    Label1.Text = dr["summary"].ToString();

    cmd.Cancel();
    dr.Close();

    if (Conn.State == ConnectionState.Open)
    {
        Conn.Close();
        Conn.Dispose(); //一開始宣告有用到 new的,最後必須以 .Dispose()結束
    }
}
catch (Exception ex) // 如果程式有錯誤或是例外狀況,將執行這一段
{
    Response.Write("<b>Error Message---- </b>" + ex.ToString() + "<HR/>");
    throw;
}

 

6. 把VB語法改成 C#語法除了有些習慣要修改之外,有些常用的VB函數也可能消失

請看這篇文章 -- [C#]以前在VB語法裡面用慣的 IsNumeric,在C#不見了??

因為C#是根本沒有任何函數,只能叫用.NET Framewrok裡的類別。

例如:VB語法常用的 Mid() 、Len()....等等。

 

7. VB語法的 Request("變數名稱"),在C#裡面要改寫成 Request["變數名稱"]

 

總之,這三天讓我浪費很多很多時間,在一些細節上面,例如:VB可以,為何改成C#就不行?

但解決後,也就豁然開朗了。

回頭看看這三天,也學到很多東西。     走過就會留下痕跡,用功總不會白費。

 

 

ASP.NET專題實務,書本內容的範例下載(VB / C#)

[置頂]ASP.NET專題實務(C#版),2009 二月推出(售價650元/文魁/書號P09027)

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net



ASP.NET遠距教學、線上課程(Web Form + MVC)。 第二門 課程「四折」-- 以MVC課程 作優惠。
第一天課程, "完整" 試聽。  如不滿意  全額退費!
................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

*********************************************************************************************

*** ASP.NET MVC線上課程 第一天 免費看 (5.5小時) *** 

************************************************************(歡迎索取,免費申請)*****

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

    MIS2000 Lab.  線上教學影片(YouTube) **免費觀賞**