Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Dim odc As New OleDbConnection() odc.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;data source=D:\save\博客教程\08 数据库\Northwind.mdb;" Dim odcommand As New OleDbCommand() odcommand.CommandText = "select 产品.产品名称 as 产品名称,类别.类别名称 as 类别 from 产品 inner join 类别 on 产品.类别ID=类别.类别ID where 产品.单价>30" odcommand.Connection = odc odc.Open() Dim odReader As OleDbDataReader odReader = odcommand.ExecuteReader(CommandBehavior.SingleResult) Dim queryString As String = "" If odReader.HasRows Then Do While odReader.Read queryString &= odReader.GetName(0) & ":" & odReader.GetString(0) & " " & odReader.GetName(1) & ":" & odReader.GetValue(1) & vbCrLf Loop End If odc.Close() TextBox1.Text = queryString End Sub
@H_301_0@对以上代码进行分析: @H_301_0@建立OleDbConnection odc @H_301_0@设置odc的连接字符串,Provider是使用的数据驱动,由于我是用的电脑系统是win10 64位,所以这里设置的是Microsoft.ACE.OLEDB.12.0 (更多信息请参看我的另外一篇博文:vs2015 64位系统下使用mdb数据库问题 ),data source是数据库的路径,如果数据库和程序在同一目录下也可以使用:data source=Northwind.mdb。 @H_301_0@新建OleDbCommand实例 odcommand @H_301_0@设置odcommand的sql命令:获得产品名称和类别,其中用到了内联查询,有关sql简单操作,请参看 《简单的SQL语言》相关内容 @H_301_0@设置odcommand的数据连接为odc @H_301_0@打开数据连接 @H_301_0@新建OleDbDataReader odReader @H_301_0@odcommand使用ExecuteReader方法将数据读取到odReader,并且只返回一个查询的结果, @H_301_0@ 其中,CommandBehavior是一个枚举,主要成员有:
CloseConnection 在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。
SchemaOnly 查询仅返回列信息。
SingleResult 查询只返回一个查询结果集。 注意,odcommand可以同时执行多个查询。
SingleRow 查询应返回结果集中的单个行 @H_301_0@如果odReader中包含数据,那么 @H_301_0@使用odReader.Read方法循环读取 @H_301_0@读取的结果包括列名(GetName)和对应的值(GetString或GetValue), @H_301_0@ GetName(0)中,数字0是对应查询结果的第一项;GetName(1)是查询结果第二项 @H_301_0@ GetString(0)是获得对应的字符串值,GetByte、GetInt16、GetInt32……是获得对应数据类型的值。
更简单的方法是直接用 GetValue,系统可以对应的转换。 @H_301_0@最后关闭连接。
@H_301_0@结果如下: @H_301_0@
@H_301_0@由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。 @H_301_0@学习更多vb.net知识,请参看vb.net 教程 目录