欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#通过oledb访问access数据库的方法

程序员文章站 2023-12-03 10:54:52
本文实例讲述了c#通过oledb访问access数据库的方法。分享给大家供大家参考。具体分析如下: 这里演示了如何在 c# 中使用 microsoft access 数据...

本文实例讲述了c#通过oledb访问access数据库的方法。分享给大家供大家参考。具体分析如下:

这里演示了如何在 c# 中使用 microsoft access 数据库。包括如何创建数据集并从数据库向该数据集添加表。

// oledbsample.cs
// 若要从命令行生成此示例,请使用命令:
// csc oledbsample.cs
using system;
using system.data;
using system.data.oledb;
using system.xml.serialization;
public class mainclass 
{
 public static void main ()
 {
  // 设置访问连接并选择字符串。
  // 如果从命令行生成此示例,
  // 则必须更改 bugtypes.mdb 的路径:
#if usingprojectsystem
  string straccessconn = "provider=microsoft.jet.oledb.4.0;data source=..\\..\\bugtypes.mdb";
#else
  string straccessconn = "provider=microsoft.jet.oledb.4.0;data source=bugtypes.mdb";
#endif
  string straccessselect = "select * from categories";
  // 创建数据集并向其中添加 categories 表:
  dataset mydataset = new dataset();
  oledbconnection myaccessconn = null;
  try
  {
   myaccessconn = new oledbconnection(straccessconn);
  }
  catch(exception ex)
  {
   console.writeline("error: failed to create a database connection. \n{0}", ex.message);
   return;
  }
  try
  {
   oledbcommand myaccesscommand = new oledbcommand(straccessselect,myaccessconn);
   oledbdataadapter mydataadapter = new oledbdataadapter(myaccesscommand);
   myaccessconn.open();
   mydataadapter.fill(mydataset,"categories");
  }
  catch (exception ex)
  {
   console.writeline("error: failed to retrieve the required data from the database.\n{0}", ex.message);
   return;
  }
  finally
  {
   myaccessconn.close();
  }
  // 一个数据集可以包含多个表,因此可以将这些表都放入
  // 一个数组中:
  datatablecollection dta = mydataset.tables;
  foreach (datatable dt in dta)
  {
   console.writeline("found data table {0}", dt.tablename);
  }
  // 下面两行显示两种不同方法,可用于获取数据集中
  // 的表计数:
  console.writeline("{0} tables in data set", mydataset.tables.count);
  console.writeline("{0} tables in data set", dta.count);
  // 下面几行显示如何按名称
  // 从数据集中获取特定表的信息:
  console.writeline("{0} rows in categories table", mydataset.tables["categories"].rows.count);
  // 列信息自动从数据库中提取,因此
  // 可以在此处看到这些信息:
  console.writeline("{0} columns in categories table", mydataset.tables["categories"].columns.count);
  datacolumncollection drc = mydataset.tables["categories"].columns;
  int i = 0;
  foreach (datacolumn dc in drc)
  {
   // 打印列下标,然后打印列的名称及其
   // 数据类型:
   console.writeline("column name[{0}] is {1}, of type {2}",i++ , dc.columnname, dc.datatype);
  }
  datarowcollection dra = mydataset.tables["categories"].rows;
  foreach (datarow dr in dra)
  {
   // 打印 categoryid 作为下标,然后打印 categoryname:
   console.writeline("categoryname[{0}] is {1}", dr[0], dr[1]);
  }
 }
}

希望本文所述对大家的c#程序设计有所帮助。