[WinForm]Windows程式(非網頁) #2 -- 跨平台的 ADO.NET程式(簡單入門)附YouTube教學影片

摘要:[WinForm]Windows程式(非網頁) #2 -- 跨平台的 ADO.NET程式

ADO.NET,只要您寫商用系統、用「資料庫」,一定都會遇見

學會他,受用無窮!    教學影片 https://youtu.be/tH3xRVHf-qU




 

 

在 ASP.NET上面,初學者都會先從 SqlDataSource這種精靈學起,用他來存取資料庫。

但他的限制多,例如:一定要有 Primary Key才能自動產生CRUD的SQL指令。

                                        也只能針對「單一資料表」來做事。

 

我們來看看 xxxDataSource這些控制項,

不管是 SqlDataSource或是 AccessDataSource

其實都是在 System.Web.UI.WebControls命名空間底下,

 

是的!這些精靈(控制項)都是給 Web使用的

 

您可以發現 Web程式使用的「SqlDataSource」控制項
骨子裡面,還是 ADO.NET的「DataReader、DataSet」兩兄弟!

 

真正好的學習(投資),大家都希望學通一種之後,

以後可以重複使用。

 

學習 ADO.NET程式就是如此。

 

 

我把 Web版(ASP.NET)的一支基礎ADO.NET程式,直接放到 Windows Form裡面執行。

幾乎不用改,您的程式就能連上DB。



真正做到「跨平台(或是說 "跨" Windows平台與 Web平台)」的資料庫存取

 

 

影片網址 https://youtu.be/tH3xRVHf-qU



================================================================

 

以下會有幾張圖片,

介紹您如何應用「您在 Web上(寫ASP.NET)的經驗」,把 ADO.NET程式轉成「Windows版」的  .EXE執行檔。

 

 

完整的程式碼如下( Windows Form )

XYZ,代表您的資料庫「連結字串」,事先存放在 App.config檔案

        private void Button1_Click(object sender, EventArgs e)
        {

            //=======微軟SDK文件的範本=======
            //----(連結資料庫)----連結字串,存在 App.Config裡面。這是 Windows From使用的設定檔。

            SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["XYZ"].ConnectionString);
            //----上面已經事先寫好 System.Configuration命名空間 ----

            SqlDataReader dr = null;

            SqlCommand cmd = new SqlCommand("select top 10 id, title from test", Conn);

            try     //==== 以下程式,只放「執行期間」的指令!=====================
            {
                Conn.Open();   //---- 這時候才連結DB

                dr = cmd.ExecuteReader();   //---- 這時候執行SQL指令,取出資料

                while (dr.Read())
                {
                    TextBox1.Text += dr["id"].ToString() + "--" + dr["title"].ToString() + "\r\n";
                }
            }

            catch (Exception ex)  //---- 如果程式有錯誤或是例外狀況,將執行這一段
            {
                Console.WriteLine("Error Message----  " + ex.ToString());
                //-- Windows程式,改用 Console來取代 Response.Write()
            }

            finally
            {
                if (dr != null)
                {
                    cmd.Cancel();
                    dr.Close();
                }
                if (Conn.State == ConnectionState.Open)
                {
                    Conn.Close();
                    Conn.Dispose();
                }
            }

        }

 

 

    Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        '=======微軟SDK文件的範本=======
        '----(連結資料庫)----連結字串,存在 App.Config裡面。這是 Windows From使用的設定檔。

        Dim Conn As New SqlConnection(ConfigurationManager.ConnectionStrings("XYZ").ConnectionString)
        '----上面已經事先寫好 System.Configuration命名空間 ----

        Dim dr As SqlDataReader = Nothing

        Dim cmd As New SqlCommand("select top 10 id,  title from test", Conn)

        Try     '==== 以下程式,只放「執行期間」的指令!=====================
            Conn.Open()   '---- 這時候才連結DB

            dr = cmd.ExecuteReader()   '---- 這時候執行SQL指令,取出資料

            While dr.Read()
                TextBox1.Text &= dr("id") & "--" & dr("title") & vbCrLf
            End While

        Catch ex As Exception   '---- 如果程式有錯誤或是例外狀況,將執行這一段
            Console.WriteLine("Error Message----  " & ex.ToString())
            '-- Windows程式,改用 Console來取代 Response.Write()

        Finally
            If Not (dr Is Nothing) Then
                cmd.Cancel()
                dr.Close()
            End If
            If (Conn.State = ConnectionState.Open) Then
                Conn.Close()
                Conn.Dispose()
            End If
        End Try

    End Sub

 

===============================================

以下是廣告

===============================================

 

如果您買的 ASP.NET書籍,裡面 介紹 xxxDataSource

甚至連「ADO.NET」、「DataReader」、「DataSet」這些字眼都沒提及

 

或許您該給 "自己"一個機會

多買幾本書來看看,多瞭解其他的老師、作者是怎麼介紹與學習  .NET

 

找一本「範例多」的書,不要買「每一章,只介紹 "精靈步驟"」就草草結束的書


找一個願意跟您一起學習、不斷分享的作者
找一個繼續與讀者、與學生「面對面」教學、互動的團隊,他們才能改善書本的難易度,才會繼續補充內容與成長
 

找一個會持續改善、持續補充範例的作者,跟你一起前進
找一個「每次出書,都有新成長、新補充、新習題」的團隊,因為他持續前進,讀者也才會學到「持續前進」的東西
 

真的   有這樣的作者與老師存在,
                                 只要您願意多多比較,您就會遇見他!

 

ADO.NET,只要您寫商用系統、用「資料庫」,一定都會遇見

學會他,受用無窮!

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

線上課程教學,遠距教學 (Web Form 約 51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約 135hr)  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.主講   事先錄好的影片,並非上課側錄!   觀看時,有如「一對一」面對面講課