[WinForm]Windows程序(非网页) #2 -- 跨平台的 ADO.NET程序(简单入门)

 

这是我的文章备份,有空请到我的网站走走,

http://www.dotblogs.com.tw/mis2000lab/

才能掌握我提供的第一手信息,谢谢您。

 

 

http://www.dotblogs.com.tw/mis2000lab/archive/2011/09/05/adonet_web_windows_2011_datareader.aspx

 

 

[WinForm]Windows程序(非网页) #2 -- 跨平台的 ADO.NET程序(简单入门)

ASP.NET上面,初学者都会先从 SqlDataSource这种精灵学起,用他来存取数据库。

但他的限制多,例如:一定要有 Primary Key才能自动产生CRUDSQL指令。

                                        也只能针对「单一资料表」来做事。

 

我们来看看 xxxDataSource这些控件,

不管是 SqlDataSource或是 AccessDataSource

其实都是在 System.Web.UI.WebControls命名空间底下,

 

是的!这些精灵(控件)都是 Web使用的

 

您可以发现 Web程序使用的「SqlDataSource」控件
骨子里面,还是 ADO.NET的「DataReaderDataSet」两兄弟!

 

201195152934509.jpg

 

 

 

真正好的学习(投资),大家都希望学通一种之后,

以后可以重复使用。

 

学习 ADO.NET程序就是如此。

 

 

我把 Web版(ASP.NET)的一支基础ADO.NET程序,直接放到 Windows Form里面执行。

几乎不用改,您的程序就能连上DB



真正做到「跨平台(或是说 "" Windows平台与 Web平台)」的数据库存取

 

 

 

201195153856256.jpg

 

 

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

 

以下會有幾張圖片,

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

201195153131765.jpg

20119515359562.jpg

20119515372152.jpg

201195153759420.jpg

 

 

完整的程式碼如下( 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,只要您写商用系统、用「数据库」,一定都会遇见

学会他,受用无穷!

 

 

 

............................. 寫信給我,mis2000lab (at) yahoo.com.台灣......

20113713185085.jpg 201137131839922.jpg   ASP.NET 4.0 專題實務(松崗出版)

上 / 下兩集合購。2011329165927556.gif優惠價1,180元(免郵資)

上集( .NET 4.0版)全新改寫。範例增加66%,內容增加35%。上市以來,熱銷五刷!

下集(第二版,黑皮書)上市一個月熱銷再刷,2010一年內(第一版)熱銷四刷!第二版半年熱銷四刷! 下集內容增加66%。

201137131858466.jpg

上下兩集將近2,000頁,堪稱國內 [最詳盡]的ASP.NET範例教學。

南無普光佛  南無普明佛  南無普淨佛  南無多摩羅跋栴檀香佛  南無栴檀光佛  南無摩尼幢佛  南無歡喜藏摩尼寶積佛  南無一切世間樂見上大精進佛   南無摩尼幢燈光佛
南無慧炬照佛  南無海德光明佛   南無金剛牢強普散金光佛  南無大強精進勇猛佛  南無大悲光佛   南無慈力王佛  南無慈藏佛  南無栴檀窟莊嚴勝佛  南無賢善首佛
南無善意佛  南無廣莊嚴王佛  南無金華光佛  南無寶蓋照空自在力王佛  南無虛空寶華光佛  南無琉璃莊嚴王佛  南無普現色身光佛  南無不動智光佛  南無降伏眾魔王佛  
南無才光明佛  南無智慧勝佛  南無彌勒仙光佛  南無善寂月音妙尊智王佛  南無世淨光佛  南無龍種上尊王佛  南無日月光佛  南無日月珠光佛  南無慧幢勝王佛  
南無師子吼自在力王佛  南無妙音勝佛  南無常光幢佛  南無觀世燈佛  南無慧威燈王佛  南無法勝王佛  南無須彌光佛  南無須曼那華光佛  南無優曇鉢羅華殊勝王佛  
南無大慧力王佛  南無阿閦毗歡喜光佛  南無無量音聲王佛  南無才光佛   南無金海光佛  南無山海慧自在通王佛  南無大通光佛  南無一切法常滿王佛  南無釋迦牟尼佛
南無金剛不壞佛  南無寶光佛  南無龍尊王佛  南無精進軍佛  南無精進喜佛  南無寶火佛  南無寶月光佛  南無現無愚佛  南無寶月佛  南無無垢佛  南無離垢佛   
南無勇施佛  南無清淨佛  南無清淨施佛  南無娑留那佛  南無水天佛  南無堅德佛  南無栴檀功德佛  南無無量掬光佛  南無光德佛  南無無憂德佛
南無那羅延佛  南無功德華佛  南無蓮華光遊戲神通佛  南無財功德佛  南無德念佛  南無善名稱功德佛  南無紅燄帝幢王佛  南無善遊步功德佛  南無鬪戰勝佛  
南無善遊步佛  南無周匝莊嚴功德佛  南無寶華遊步佛  南無寶蓮華善住娑羅樹王佛   南無法界藏身阿彌陀佛

............................. 寫信給我,mis2000lab (at) yahoo.com.台灣......

 

 

 

转载于:https://www.cnblogs.com/mis2000lab/archive/2011/09/08/2171628.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值