在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")
?
答案 0 :(得分:0)
使用向导添加数据源时,会自动创建连接字符串。但是,为了能够正确使用数据库,还有一些步骤要做。
将数据加载到您可以使用的表中。例如,假设我有一个名为StarTrek的数据库,其中包含一个表Enterprise。以下行将数据加载到Enterprise表中:
Me.EnterpriseTableAdapter.Fill(Me.StarTrekDataSet.Enterprise)
创建标量查询。它会在您的表中找到一个值。在数据设计器中,向Enterprise表添加查询(右键单击TableAdapter区域)。 如果期望的结果是Mister Spock的年龄(列“年龄”)(列“名称”),则查询将是:
' Access Database
SELECT Age FROM Enterprise WHERE (Name = ?)
' for an SQL Database
SELECT Age FROM Enterprise WHERE Name = [@Name]
现在可以进行搜索。假设您将查询命名为ScalarQueryAge。下面将Spister先生的年龄显示为标签。
Dim AgeAdapter As New StarTrekDataSetTableAdapters.EnterpriseTableAdapter
Dim Age As Integer = CType(AgeAdapter.ScalarQueryAge("Mister Spock"), Integer)
LabelAgeMisterSpock.Text = "He is actually " & Age & "!!"