vb.net訪問sql server數據庫(SqlDataReader和DataSet兩種方式)


.net訪問數據庫的三個基本步驟:

  一.連接數據庫:

    要使用sqlclient命名空間中的sqlconnection類;

    定義一個sqlconnection對象: Dim sqlCon As New SqlConnection   

    要進行的設置有:

    1.sqlCon .ConnectionString="server=服務器ip;database=數據庫名稱;integrated security=ture/false(是否有登錄賬號密碼);uid=用戶名

    (默認:sa);pwd:登錄密碼"      '設置連接屬性

    2.sqlCon .open        '打開數據庫

 

  二.編輯操作命令:

    要使用sqlclient命名空間中的sqlcommand類;

    定義一個sqlcommand對象: Dim sqlCM As New SqlCommand

    要進行的設置有:

    1.sqlCM .CommandType = CommandType.Text       '指明字符串命令屬於什么類型(存儲過程名、表明、sql語句)

    2.sqlCM .CommandText = "select * from table'"      '查詢語句

 

  三.讀取數據(數據讀取有兩種操作方式:DataSet和DataReader)

    方法一.DataSet(把數據讀出,緩存在內存的表中,可以用dataset填充一張datatable,再將表與datagridview綁定,即可方便觀察數據,要與SqlDataAdapter

        對象合作)

       步驟:

          Dim MyDataSet As New DataSet       '定義一個dataset對象

        Dim sqlAd As New SqlDataAdapter      '定義一個sqldataadapter對象

        設置sqldataadapter屬性:

        sqlAd.SelectCommand = sqlCM         '適配器命令屬性配置

        sqlAd.SelectCommand.Connection = sqlCnn   '適配器連接屬性配置

        sqlAd.Fill(MyDataSet, "stu")            '按照表stu的格式將數據填充到MyDataSet中

        至此,數據庫中返回的數據已經在表MyDataSet中了,為了方便觀察,添加一個DataGridView空間,並與表MyDataSet綁定,用來顯示數據,

        步驟如下:     

          DataGridView1.DataMember = "table1"                     '控件名

          DataGridView1.DataSource = MyDataSet.Table(0)      '數據源綁定

        現在,空間DataGridView1上已經將數據庫查詢結果(表格)顯示出來了。

        注:   關於SqlDataAdapter和DataSet 的關系,新手(本人)可能有點蒙,提供幾個參考:   

             http://zhidao.baidu.com/question/165308688.html

             http://www.cnblogs.com/caijun520/archive/2013/06/02/3114425.html

             http://www.cnblogs.com/eagle1986/archive/2010/01/24/1655327.html

 

    方法二.sqlDataReader(每次讀取一行結果,並且讀取時連接不能斷開,速度快,適用於只讀不操作)

          先說下思路:由於sqlDataReader對象每次只能讀一行數據,我們要顯示所有數據,可以先將每行數據逐次添加到一張表中(通過一個元素個數與表

              的列數相同的數組),再將該表與DataGridView 控件綁定即可。

        步驟:  

          Dim myread As SqlClient.SqlDataReader = Nothing  '定義一個SqlDataReader 對象並賦初值Nothing(否則會警告)

          Dim mytable As New DataTable()            ’定義一張表,用來存查詢到的結果

          Dim mystr(3) As String                 '定義中間數組,我這里表格為4列      

          '添加列
          Dim sno As DataColumn = New DataColumn("sno")
          Dim sname As DataColumn = New DataColumn("sname")
          Dim ssex As DataColumn = New DataColumn("ssex")
          Dim sphone As DataColumn = New DataColumn("sphone")
          '將列添加到表格中
          mytable.Columns.Add(sno)
          mytable.Columns.Add(sname)
          mytable.Columns.Add(ssex)
          mytable.Columns.Add(sphone)          

          myread = mycommand.ExecuteReader      '執行讀取動作 

           While (myread.Read)               '不為空則一直讀

            myread.GetValues(mystr)             '執行讀取動作,將一行數據存入mystr數組中
            mytable.Rows.Add(mystr)          '將數組數據作為一行添加到表中
          End While

 

          '將表格與現實控件綁定
          DataGridView1.DataSource = mytable

          現在,控件DataGridView1上已經將數據庫查詢結果(表格)顯示出來了。

          注:SqlDataReader參考:

                http://www.cnblogs.com/caijun520/archive/2013/06/02/3114422.html

                http://blog.163.com/wzhxxt@126/blog/static/418935632013214370722/

          下面分別貼出兩種方式的完整代碼(你得先擁有兩個按鈕和一個DataGridView控件):

 

 1 Imports System.Data.Sql
 2 Imports System.Data.SqlClient
 3 
 4 
 5 Public Class Form1
 6 
 7 
 8 
 9     'DataReader
10     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
11 
12         Dim myconnect As New SqlClient.SqlConnection
13         Dim mycommand As New SqlClient.SqlCommand
14         Dim myread As SqlClient.SqlDataReader = Nothing
15         Dim mytable As New DataTable()
16         Dim mystr(3) As String
17 
18         '連接屬性
19         myconnect.ConnectionString = "server=192.168.0.100;database=temp;integrated security=true;uid=sa;pwd=   "
20         myconnect.Open()        '打開數據庫
21 
22         '設置命令屬性
23         mycommand.Connection = myconnect
24         mycommand.CommandType = CommandType.Text
25         mycommand.CommandText = "select * from stu"
26 
27         '添加列
28         Dim sno As DataColumn = New DataColumn("sno")
29         Dim sname As DataColumn = New DataColumn("sname")
30         Dim ssex As DataColumn = New DataColumn("ssex")
31         Dim sphone As DataColumn = New DataColumn("sphone")
32         '將列添加到表格中
33         mytable.Columns.Add(sno)
34         mytable.Columns.Add(sname)
35         mytable.Columns.Add(ssex)
36         mytable.Columns.Add(sphone)
37 
38         myread = mycommand.ExecuteReader    '執行讀取動作
39 
40         While (myread.Read)                 '不為空則一直讀
41 
42             myread.GetValues(mystr)         '執行讀取動作,將一行數據存入mystr數組中
43             mytable.Rows.Add(mystr)         '將數組數據作為一行添加到表中
44         End While
45 
46         '將表格與現實控件綁定
47         DataGridView1.DataMember = "mytable"
48         DataGridView1.DataSource = mytable
49 
50         myread.Close()      '關閉讀
51         myconnect.Close()   '關閉連接
52 
53     End Sub
54 
55 
56 
57     'DataSet
58     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
59 
60         Dim myconnect As New SqlClient.SqlConnection
61         Dim mycommand As New SqlClient.SqlCommand
62         Dim myadp As New SqlClient.SqlDataAdapter
63         Dim mydataset As New DataSet
64 
65         myconnect.ConnectionString = "server=192.168.0.100;database=temp;integrated security=true;uid=sa;pwd=   "
66         myconnect.Open()
67 
68         mycommand.Connection = myconnect
69         mycommand.CommandType = CommandType.Text
70         mycommand.CommandText = "select * from stu"
71 
72         myadp.SelectCommand = mycommand
73         myadp.Fill(mydataset)
74 
75         DataGridView1.DataSource = mydataset.Tables(0)
76 
77         myconnect.Close()
78 
79     End Sub
80 End Class

 

 

      

    

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM