0

在 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")吗?

4

1 回答 1

0

使用向导添加数据源时,会自动创建连接字符串。但是为了能够正确使用数据库,还需要执行更多步骤。

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

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

    ' 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 & "!!"
    
于 2012-08-16T14:54:57.893 回答