VB.NET訪問SQLServer資料庫

來源:互聯網
上載者:User

    用vb6.0編寫收費系統,用的是ADODB(Active Data Objects Data Base)+Recordset,而在vb.net中用的是SqldataAdapter、SqldataReadr、Dataset和Datatable,剛剛寫第二遍收費系統時,對這幾個概念模糊,也能反映出當時的浮躁和對新知識接受能力的不足。下面先瞭解一下常用方法、屬性。

SqlDataAdapter

    如果只需要執行SQL語句,就沒必要用到DataAdapter, 直接用SqlCommand的Execute系列方法就可以了。sqlDataadapter的作用是實現Dataset和DataBase之間的橋樑。

    首先介紹一下常用的構造、方法和屬性(需要先引用System.Data.SqlClient)

常用的方法

    Fill

    Fill方法的作用是將資料庫中的資料填充到dataset。例如:

        Dim ds As New DataSet    '定義一個dataset        Dim da As New SqlDataAdapter  '定義一個sqldataadapter        '填充dataset        da.Fill(ds, "User_info")

    Update

    Update方法的作用是將dataset裡面的資料更新到資料庫。例如:

        Dim ds As New DataSet    '定義一個dataset        Dim da As New SqlDataAdapter  '定義一個sqldataadapter        '更新dataset        da.Update(ds, "User_info")
DataSet

    可以把DataSet當成記憶體中的資料庫,DataSet是不依賴於資料庫的獨立資料集合。所謂獨立,就是說,即使斷開資料鏈路,或者關閉資料庫,DataSet依然是可用的,DataSet 由一組 DataTable 對象組成。

        Dim ds As New DataSet '定義一個dataset        ds.Tables.Add(dt) '向dataset中添加datatabele

DataTable

    是一個臨時儲存資料的網格虛擬表,可以用來儲存資料。例如:在表單上拖放一個DataGridView控制項,在button1寫寫代碼:

        Dim dt As New DataTable() '定義一個datatabele        dt.Columns.Add("卡號") '添加欄位“卡號”        dt.Columns.Add("姓名") '添加欄位“姓名”        dt.Columns.Add("學號") '添加欄位“學號”        dt.Columns.Add("老師") '添加欄位“老師”        dt.Rows.Add("10001", "jain", "0905024", "mi")  '向datatabele中寫資料行

    需要注意的是,datatabele需要先添加列才能添加行,我的理解是相當於在資料庫表中先添加欄位,才能輸入資料。效果如下:

        

SqldataReader

    sqldatareader 是一種擷取資料庫資料的一種方法,擷取的資料唯讀。並且它需要與sqlCommand連用,最常見的使用方法:

        Dim ConnString As String = _            "Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;Persist Security Info=True;User ID=sa;Password=123456"        Dim sqltxt As String = "select * from User_info" '定義sql語句        Dim sqlconn As New SqlConnection(ConnString) '定義串連        Dim sqlcmd As New SqlCommand(sqltxt, sqlconn) '定義sqlCommand        Dim userReader As SqlDataReader '定義sqldatareader        Try            sqlconn.Open() '開啟串連            userReader = sqlcmd.ExecuteReader '產生sqldatareader            userReader.Read()  '讀取資料            MsgBox(userReader.Item(3)) '顯示讀取的第四個資料            userReader.Close()  '關閉閱讀        Catch ex As Exception            MsgBox(ex.Message)        Finally            sqlcmd.Dispose() ' 釋放sqlCommand        End Try

    這樣就能達到最簡單的資料讀取操作,需要注意的是使用sqldatareader,需要先開啟資料庫連接,才能產生sqldatareader,並且需要.read()後才能擷取資料。

    下面以擷取整個資料庫中某個表的資料為例,將sqldatareader、sqldataadapter、datatabele和dataset同時使用。代碼:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        Dim ConnString As String = _            "Data Source=192.168.24.158;Initial Catalog=CR_Charge_SYS;Persist Security Info=True;User ID=sa;Password=123456"        Dim sqltxt As String = "select * from User_info" '定義sql語句        Dim sqlconn As New SqlConnection(ConnString) '定義串連        Dim sqlcmd As New SqlCommand(sqltxt, sqlconn) '定義sqlCommand        Dim da As New SqlDataAdapter(sqlcmd) '定義sqldataadapter並於sqlcommand串連        Dim ds As New DataSet        Dim userReader As SqlDataReader '定義sqldatareader        Try            sqlconn.Open() '開啟串連            userReader = sqlcmd.ExecuteReader '產生sqldatareader            userReader.Read()  '讀取資料            MsgBox(userReader.Item(3)) '顯示讀取的第四個資料            userReader.Close()  '關閉閱讀            da.Fill(ds, "Userinfo")            DataGridView1.DataSource = ds.Tables("Userinfo")        Catch ex As Exception            MsgBox(ex.Message)        Finally            sqlcmd.Dispose() ' 釋放sqlCommand        End Try    End Sub


    顯示結果:

        

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.