用C#访问Access数据库

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 22:05 点击:
  我编写这个程序的动机是当我希望用c sharp访问MSAccess数据库的时候我没有办法获得任何信息和参考材料.网上所能获得的所有材料都是偏重于SQL的,所以我们将分两步来编写这个应用程序,第一我们将展示如何连接到MSAccess数据库然后看看它有多复杂.最后,我们就这样完成了这个程序.
  
  闲言少序,让我们开始正题.连接到数据库的过程与我们早先的ADO连接过程相比已经发生了较大的变化.下面的图表恰当的(我希望如此)OleDbConnection--> OleDbCommand --> OleDbDataReader.现在那些熟悉ado的人很明显能看出两者的相似之处但是为了使那些还没有很好的适应ado的人能够明白,下面是一些解释.
  
  OleDbConnection -->代表对数据库的单一连接,根据底层数据库的功能它能给你操纵数据库的能力.有一点必须记住,虽然oledbconnection对象出了作用范围,它也不会自动被关闭.所以,你将不得不显示的调用这个对象的close()方法.
  
  OleDbCommand -->这是就象我们在ado中使用的一样的通常的command对象.你可以通过这个对象调用sql存储过程或是sql查询语句.
  
  OleDbDataReader -->这个类拥有非常大的重要性因为它提供了实际上的对数据库底层数据集的访问.当你调用OleDbCommand的ExecuteReader方法的时候它就会被创建,.NET beta2 sdk说不要直接创建这个类的对象.
  
  现在你可以在.NET beta 2的文档中看到更多的关于这些主要对象的说明,下面是指出如何在程序中访问数据库的源代码.
  
  using System;
  using System.Data.OleDb;
  
  class OleDbTest{
  
  public static void Main()
  {
  //创建数据库连接
  OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb");
  
  //创建command对象并保存sql查询语句
  OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
  try
  {
  aConnection.Open();
  
  //创建datareader 对象来连接到表单
  OleDbDataReader aReader = aCommand.ExecuteReader();
  Console.WriteLine("This is the returned data from emp_test table");
  
  //循环遍历数据库
  while(aReader.Read())
  {
  Console.WriteLine(aReader.GetInt32(0).ToString());
  }
  
  //关闭reader对象
  aReader.Close();
  
  //关闭连接,这很重要
  aConnection.Close();
  }
  
  //一些通常的异常处理
  catch(OleDbException e)
  {
  Console.WriteLine("Error: {0}", e.Errors[0].Message);
  }
  }
  }
  
  成功运行这个程序的步骤
  1.用msaccess创建一个名叫db1.mdb的数据库
  2.创建一个名叫emp_test的表单
  3.使它包含下列数据域
  emp_code int
  emp_name text
  emp_ext text
  4.将上面的代码保存到sample.cs文件中
  5.确保数据库位于c:并确保mdac2.6或是更新的版本已经被安装
  6.编译运行
  
  现在让我们来了解一些我们在oledbconnection对象的构造函数看到的东西的一些细节,在这里你看见诸如"provider="之类的东西.下面是一些和ado.net兼容的驱动程序类型.
  sqlolddb --> Microsoft OLE DB Provider for SQL Server,
  msdaora --> Microsoft OLE DB Provider for Oracle,
  Microsoft.Jet.OLEDB.4.0 --> OLE DB Provider for Microsoft Jet
  你可以选择其中的任何一个但是他们会需要传递不同的参数,例如jet.oledb.需要传递mdb文件的名字而sqloledb需要传递用户名和密码.
  
  所有这些驱动程序都位于System.Data.OleDb命名空间里,所以你必须包括它,而且它们和oledb provider for odbc不兼容,也就是说你不能在vb6.0程序里使用这些驱动程序来访问数据库,所以不要去寻找解释为什么要把这些数据库放在c:上的资料了
  
  当你使用Microsoft SQL Server 7.0 或者更新版本的时候,下面是微软给出
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 用C#制作屏幕捕获程序
    • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
    • 遍历ArrayList易犯错误
    • C#对XML操作:一个处理XML文件的类(1)
    • .NET简谈反射(动态调用)
    • 使用C#编写LED样式时钟控件
    • DataList嵌套问题 如何删除内层子DataList的记录
    • 怎样用C#实现完整文档打印功能
    • .NET简谈自定义事务资源管理器
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1