vb.net应用程序对数据库的访问是通过ado.net来完成的。ADO.NET通过ODBC通道使用SQL访问数据库。ADO.NET对数据库的访问可以简单的想象成三层处理模型。这三层及每层主要涉及的类如下所示:
1、建立到数据库的链接
2、通过链接执行SQL语句
3、数据可用的时候,处理SQL语句返回的数据。
层次 | 类名 | 对应在System.Data.OleDb命名空间中的类名 | 对应在System.Data.SqlClient命名空间中的类名 |
1 | Connection | OleDbConnection | SqlConnection |
2 | DataAdapter | OleDbDataAdapter | SqlDataAdapter |
Command | OleDbCommand | SqlCommand | |
3 | DataReader | OleDbDataReader | SqlDataReader |
System.Data中的DataSet | DataSet | DataSet |
访问不同的数据源可以引用不同的命名空间,然后使用该空间下相应的ADO.NET中的类,如访问SQL Server可以使用SqlConnection进行链接。
当我们进行链接时要设置ConnectionString属性进行链接,其中要使用到数据源提供者的名字一项,例如sqlCnn.ConnectionString = " data source=SQLOLEDB;SERVER=DongZi/sqlExpress;uid=sa;pwd=123;database=MachineRoom"
中的Data Source=SQLOLEDB就是.NET平台中SQL Server数据源提供者的名称。总之,我们在使用不同数据库时要找到相应的数据源提供者在.NET中的名称,然后在设置ConnectionString就可以了。
下面利用SqlConnection、SqlDataAdapter等类做一个获取DbStuRegister数据表中的列的数量的一个Demo。
Imports System.Data
Imports System.Data.SqlClient
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sqlCnn As New SqlConnection
Dim sqlAd As New SqlDataAdapter
Dim MyDataSet As New DataSet
Dim Tab As New DataTable
Dim sqlCM As New SqlCommand
sqlCnn.ConnectionString = " data source=SQLOLEDB;SERVER=DongZi/sqlExpress;uid=sa;pwd=123;database=MachineRoom"
sqlCnn.Open()
sqlCM.CommandText = "select * from DbStuRegister"
sqlAd.SelectCommand = sqlCM
sqlAd.SelectCommand.Connection = sqlCnn
sqlAd.Fill(MyDataSet)
Tab = MyDataSet.Tables(0)
txtCardNo.Text = Tab.Columns.Count
End Sub
End Class
DataAdapter的用法见.NET的联机文档。
学习数据库访问就是要熟悉这三层类的应用与关系。