.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