从Access数据库收集数据

我想从Access数据库的某些表中收集一些数据,我在网上找到了一些解决方案,但是我还没有找到填充数据表或数据集的方法,并且正确地获取每个单独的字段。

我是否更容易获得整个表格,然后获得我想要的信息,或者我应该在访问数据库中进行大量搜索,以获得我想要的每次? 任何代码片段?

信息:

  • Access数据库位于ACCDB文件中,没有用户或密码
  • 我目前正在使用VB.NET,但如果你用C#回答并不重要

– [编辑] –
子问题
通过OLEDB连接到ACCDB格式的MS-ACCESS数据库

从这里 ,您使用OleDbDataReader

 using System; using System.Data; using System.Data.Common; using System.Data.OleDb; class MainClass { static void Main(string[] args) { string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=C:\\Northwind.mdb"; OleDbConnection conn = new OleDbConnection(connectionString); string sql = "SELECT * FROM Orders"; OleDbCommand cmd = new OleDbCommand(sql, conn); conn.Open(); OleDbDataReader reader; reader = cmd.ExecuteReader(); while (reader.Read()) { Console.Write(reader.GetString(0).ToString() + " ," ); Console.Write(reader.GetString(1).ToString() + " ," ); Console.WriteLine(""); } reader.Close(); conn.Close(); } } 

如果可以填充DataSet,则内存中包含所有数据(字段)。

  • 在项目中,使用“数据”菜单添加数据源。
  • 按照向导。 它将为您创建一个Typed DataSet。
  • 将新的DataSource拖动到Form。 这将显示填充DS的代码。

我编写了这个测试程序来从DAO数据库中检索数据。 这对你也有用。

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; namespace TestReadCfg { class Program { static void Main(string[] args) { string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "c:\\Avtron\\addapt\\Configuration\\testDao.db;Jet OLEDB:Database Password=RainbowTrout;"; string queryString = "SELECT * from Sections order by Address"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { // Create the Command and Parameter objects. OleDbCommand command = new OleDbCommand(queryString, connection); try { connection.Open(); OleDbDataReader reader = command.ExecuteReader(); int iRecNbr = 1; while (reader.Read()) { String sRecord = string.Empty; sRecord = string.Format("Record {0}: ", iRecNbr); for (int i = 0; i < reader.FieldCount; i++) { sRecord += string.Format("{0} ", reader[i].ToString()); } Console.WriteLine(sRecord); iRecNbr++; } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }