使用Visual Basic读取Access 2007数据库

时间:2012-08-10 12:10:36

标签: vb.net ms-access-2007

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

我使用构建向导连接到数据库(不将其导入项目),即:“添加新数据源”> “数据库”> ... 然后自动生成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")

1 个答案:

答案 0 :(得分:0)

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

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

    Me.EnterpriseTableAdapter.Fill(Me.StarTrekDataSet.Enterprise)
    
  3. 创建标量查询。它会在您的表中找到一个值。在数据设计器中,向Enterprise表添加查询(右键单击TableAdapter区域)。 如果期望的结果是Mister Spock的年龄(列“年龄”)(列“名称”),则查询将是:

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

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