using System;
using System.Data;
using System.Data.OleDb;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace A0150_Access.Sample
{

/// <summary>
/// 用于 访问 Access 数据库的例子.
///
///
/// </summary>
class ReadAccessDB
{

/// <summary>
/// Access 的数据库连接字符串.
/// </summary>
private const String connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\TeamMemberManager.mdb";

/// <summary>
/// 用于查询的 SQL 语句.
/// </summary>
private const String SQL = "SELECT member_type_code, member_type_name FROM team_member_type";

/// <summary>
/// DataSet 导出的文件
/// </summary>
private const String DATATABLE_XML_FILE = "datatable.xml";
private const String DATATABLE_SCHEMA_XML_FILE = "datatable_schema.xml";

/// <summary>
/// 将数据读取到 DataSet 中.
///
/// 这里演示了2种方式,一种是从数据库中读取,一种是从XML文件中读取.
///
/// 作为对比,还可以参考 A0210_DataSetXML 项目下的 DataSetReadXml 类,那里的读取方式,与这里有些差异。
/// </summary>
public void ReadDataToDataSet()
{

Console.WriteLine("使用DataAdapter,将数据填充到DataSet中,然后脱离数据库,直接对DataSet进行处理。");

// 建立数据库连接.
OleDbConnection conn = new OleDbConnection(connString);

// 创建一个适配器
OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, conn);

// 创建DataSet,用于存储数据.
DataSet testDataSet = new DataSet();

// 执行查询,并将数据导入DataSet.
adapter.Fill(testDataSet, "team_member_type");

// 关闭数据库连接.
conn.Close();

// 处理DataSet中的每一行数据.
foreach (DataRow testRow in testDataSet.Tables["team_member_type"].Rows)
{
// 将检索出来的数据,输出到屏幕上.
Console.WriteLine("ID: {0} Name: {1}",
testRow["member_type_code"], testRow["member_type_name"]
);
}

// 注意:
// 在通过 DataTable 的 WriteXml 方法来导出数据,给其他系统使用的时候
// 还需要使用 WriteXmlSchema 来导出 Schema
// 否则在使用 ReadXml 读取的时候, 会发生错误,因为新的 DataTable 不知道表的结构,不知道该如何去读取.
// 除非你手动设置好每个列的字段/数据类型等信息,那么 DataSet 或者 DataTable 将能够理解如何倒入,而不在需要 ReadXmlSchema
Console.WriteLine("将 DataTable 的数据,写入到 XML 文件中。");
testDataSet.Tables["team_member_type"].WriteXmlSchema(DATATABLE_SCHEMA_XML_FILE);
testDataSet.Tables["team_member_type"].WriteXml(DATATABLE_XML_FILE);

Console.WriteLine("从 XML 文件中,读取数据到 DataTable 里面。");
DataTable newDt = new DataTable();
newDt.ReadXmlSchema(DATATABLE_SCHEMA_XML_FILE);
newDt.ReadXml(DATATABLE_XML_FILE);

// 输出 DataTable 信息。
foreach (DataRow testRow in newDt.Rows)
{
// 将检索出来的数据,输出到屏幕上.
Console.WriteLine("ID: {0} Name: {1}",
testRow["member_type_code"], testRow["member_type_name"]
);
}
}

/// <summary>
/// 通过 Reader, 依次读取每一条数据.
/// </summary>
public void ReadDataByReader()
{
Console.WriteLine("使用DataReader,逐行对查询结果进行处理。[处理过程必须保持数据库连接正常]");

// 建立数据库连接.
OleDbConnection conn = new OleDbConnection(connString);

// 打开连接.
conn.Open();

// 创建一个 Command.
OleDbCommand testCommand = conn.CreateCommand();

// 定义需要执行的SQL语句.
testCommand.CommandText = SQL;

// 执行SQL命令,结果存储到Reader中.
OleDbDataReader testReader = testCommand.ExecuteReader();

// 处理检索出来的每一条数据.
while (testReader.Read())
{
// 将检索出来的数据,输出到屏幕上.
Console.WriteLine("ID: {0} Name: {1}",
testReader["member_type_code"], testReader["member_type_name"]
);
}

// 关闭Reader.
testReader.Close();

// 关闭数据库连接.
conn.Close();

}

}

C# 读取 Access 数据库表的例子的更多相关文章

  1. java读取ACCESS数据库的简单示例

    java读取ACCESS数据库的简单示例 虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试 先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1&q ...

  2. java通过Access_JDBC30读取access数据库时无法获取最新插入的记录

    1.编写了一个循环程序,每几秒钟读取一次,数据库中最新一行数据 连接access数据库的方法和查询的信息.之后开一个定时去掉用. package javacommon.util; import jav ...

  3. php读取access数据库

    <?php //读取mdb数据库 $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsof ...

  4. 创建数据库,创建数据库表,例子。MySQL语句

    1.创建数据库:    创建的代码:create  数据库的代码:database   数据库表名:随便起,只要自己记住就行.test create database test; 2.删除数据库: 删 ...

  5. access数据库表导入到oracle

    1.本机安装access数据库 25M左右2.创建ODBC数据源,要选择oracle C:\Windows\SysWOW64\odbcad32.exe 3.打开要导入的 .mdb文件 右键表--> ...

  6. 【.Net 学习系列】-- Windows身份模拟(WindowsIdentity.Impersonate)时读取Access数据库

    参考资料: WindowsIdentity.Impersonate https://msdn.microsoft.com/zh-cn/library/w070t6ka(v=vs.110).aspx A ...

  7. 创建access数据库表demo的封装

    1.创建类 public void CreateBiao(ADOX.Catalog catlog,ADOX.Table table) { //StuId Column(AutoIncrement ) ...

  8. asp.net读取Access数据库。

    注:数据库(表名 job  id 工作id ,job工作字段) 数据库放在app_data文件中.名称为database.mdb 如果用codesmith生成,选择的数据库连接类型如下图: 项目结构图 ...

  9. 利用ADO让普通人用excel读取oracle数据库表的通用办法

    Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的 ...

随机推荐

  1. win7 打开方式不能添加程序

    打开注册表,找到“HKEY_CLASSES_ROOT\Applications\”中,查看相应的程序的“\shell\open\command”项中的数据是否正确:如果不正确,就修改正确,之后再添加程 ...

  2. Js数学函数1

    1.取模求余数 //1.JS取模求余 //输出 for (var i = 0; i < 20; i++) { if (i % 3 == 0) { documentHelper.WriteText ...

  3. asp.net操作cookie类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...

  4. 学习日记_SSH框架web.xml配置文件篇

    1.参考一:http://www.blogjava.net/yxhxj2006/archive/2012/07/09/382632.html 2.参考二: <!-- web 容器启动spring ...

  5. 转:常用的HTML标签和属性解释

    基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---</TITLE>,包含 ...

  6. C# static 干货全解析

    讲解顺序 背景 静态字段 静态函数 静态方法 疑问解答 背景 static来源 在编写类的时候,有时候需要类里面的某个成员具有唯一性,也就是,对所有的对象都保持只有一个的状态.比如创建个人信息,我们都 ...

  7. 你好,C++(36)人参再好,也不能当饭吃!6.3 类是如何面向对象的

    6.3  类是如何面向对象的 类作为C++与面向对象思想结合的产物,作为面向对象思想在C++中的载体,它的身上流淌着面向对象的血液.从类成员的构成到类之间的继承关系再到虚函数,到处都体现着面向对象封装 ...

  8. Ubuntu安装google chrome过程

    Ubuntu安装google chrome过程: # wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd6 ...

  9. jquery mobile listview列表属性(搜索自动填充检索效果)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  10. jQuery键盘控制方法,以及键值(keycode)对照表

    键盘控制应用范围非常广泛,比如快捷键控制页面的滚动:在填写表单时候,限制输入内容:或者是屏蔽复制.粘贴.退后等功能.这里说说用jQuery怎么来实现.个人觉得jQuery比原生态的JS好用,代码简单清 ...