這三天的連續假期,我都在做相同的事。
第一,幫忙照顧小孩。
第二,把手邊的範例(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()....等等。
- Mid() / Left() / Right() 請修改成 C#語法的 字串名稱.SubString();
- Len()請修改成 C#語法的 字串名稱.Length;
7. VB語法的 Request("變數名稱"),在C#裡面要改寫成 Request["變數名稱"]
總之,這三天讓我浪費很多很多時間,在一些細節上面,例如:VB可以,為何改成C#就不行?
但解決後,也就豁然開朗了。
回頭看看這三天,也學到很多東西。 走過就會留下痕跡,用功總不會白費。
ASP.NET專題實務,書本內容的範例下載(VB / C#)
[置頂]ASP.NET專題實務(C#版),2009 二月推出(售價650元/文魁/書號P09027)
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。