2012-08-10 82 views
0

在Visual Studio 2010中使用Visual Basic(和.NET 4)时,我想从Access 2007 .accdb数据库读取数据。使用Visual Basic读取Access 2007数据库

我使用向导中的构建连接到数据库(不导入到项目中),即:“添加新数据源”>“数据库”> ... 然后自动生成ConnectivityString。

在网络上的许多文章谈论如何连接到使用的连接字符串的数据库就像Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

但我已经好几个这样的命令(自动生成)在我的App.config文件。例如:

<connectionStrings> 
     <add name="Wolf_Calc.My.MySettings.wolf_calcConnectionString" 
      connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\wolf-calc.accdb" 
      providerName="System.Data.OleDb" /> 

我可以然后就开始写在我的代码查询,只是这样做 value = table1.SearchCriterion("x").SearchRange("y")

回答

0

使用向导添加数据源时,会自动创建连接字符串。但是为了能够正确使用数据库,还有一些步骤要做。

  1. 创建TableAdapters。为此,请将“数据源”窗格中的表格拖到表单上。
  2. 将数据加载到可以使用的表中。例如,假设我有一个名为StarTrek的数据库,其中包含一个表Enterprise。以下行将数据加载到企业表中:

    Me.EnterpriseTableAdapter.Fill(Me.StarTrekDataSet.Enterprise) 
    
  3. 创建标量查询。它会在你的表格中找到一个值。在数据设计器中,将查询添加到企业表(右键单击TableAdapter区域)。 如果期望的结果是年龄斯波克先生(列“年龄”)(列“姓名”),查询将是:

    ' Access Database 
    SELECT Age FROM Enterprise WHERE (Name = ?) 
    
    ' for an SQL Database 
    SELECT Age FROM Enterprise WHERE Name = [@Name] 
    
  4. 搜索现在可以进行。假设您命名了查询ScalarQueryAge。以下将Spock先生的年龄显示为标签。

    Dim AgeAdapter As New StarTrekDataSetTableAdapters.EnterpriseTableAdapter 
    Dim Age As Integer = CType(AgeAdapter.ScalarQueryAge("Mister Spock"), Integer) 
    LabelAgeMisterSpock.Text = "He is actually " & Age & "!!" 
    
相关问题