从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(); } } }