晨风资讯网
新闻资讯网络冲浪网页设计网络编程图形图像数据库网络媒体服务器网络安全网站运营软件教程黑客认证Wap技术
教程搜索
教程搜索:
  首页 > 程序开发 > C/C++ > 正文  

C# 程序员参考--OLE DB 教程
日期:2006-5-31 15:47:18 来源:网络 作者:无名 浏览:

C# 程序员参考--OLE DB 教程

OLE DB 是用于访问数据的基于 COM 的应用程序编程接口 (API)。OLE DB 支持访问以 OLE DB 提供程序可以使用的任何格式(数据库、电子表格、文本文件等)存储的数据。每个 OLE DB 提供程序从某一特定类型的数据源(例如 SQL Server 数据库、Microsoft Access 数据库或 Microsoft Excel 电子表格)公开数据。

教程说明如何从 C# 应用程序中使用 Microsoft Access 数据库。

教程

教程说明如何从 C# 中使用 Microsoft Access 数据库。它显示如何创建数据集并从数据库向该数据集添加表。本示例程序中使用的 BugTypes.mdb 数据库是 Microsoft Access 2000 .MDB 文件。

示例

本程序访问 BugTypes.mdb 数据库,创建一个数据集并向其中添加表,然后显示表、列和行的数目。它还显示每行的标题。

// OleDbSample.csusing System;using System.Data;using System.Data.OleDb;using System.Xml.Serialization;public class MainClass {    public static void Main ()    {            // Set Access connection and select strings.            // The path to BugTypes.MDB must be changed if you build             // the sample from the command line:#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";             // Create the dataset and add the Categories table to it:            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();            }             // A dataset can contain multiple tables, so let's get them            // all into an array:            DataTableCollection dta = myDataSet.Tables;            foreach (DataTable dt in dta)            {            Console.WriteLine("Found data table {0}", dt.TableName);            }                      // The next two lines show two different ways you can get the            // count of tables in a dataset:            Console.WriteLine("{0} tables in data set", myDataSet.Tables.Count);            Console.WriteLine("{0} tables in data set", dta.Count);            // The next several lines show how to get information on            // a specific table by name from the dataset:            Console.WriteLine("{0} rows in Categories table", myDataSet.Tables["Categories"].Rows.Count);            // The column info is automatically fetched from the database,            // so we can read it here:            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)            {                  // Print the column subscript, then the column's name                  // and its data type:                  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)            {                  // Print the CategoryID as a subscript, then the CategoryName:                  Console.WriteLine("CategoryName[{0}] is {1}", dr[0], dr[1]);            }         }}

输出

BugTypes.mdb 数据库的 Categories 表包含下列信息:

类别 ID类别名称
1Bugbash Stuff
2Appweek Bugs
3.NET Framework Reports
4Internal Support

当运行此示例时,屏幕上将显示下列输出:

Found data table Categories1 tables in data set1 tables in data set4 rows in Categories table2 columns in Categories tableColumn name[0] is CategoryID, of type System.Int32Column name[1] is CategoryName, of type System.StringCategoryName[1] is Bugbash StuffCategoryName[2] is Appweek BugsCategoryName[3] is .NET Framework ReportsCategoryName[4] is Internal Support


上一篇: C#中使用指针 下一篇:

C# 语言规范--1.1 开始

返回列表 打印此页 加入收藏 资讯论坛 关闭窗口 点击复制本页地址,发送给QQ/MSN好友
关于我们 - 联系我们 - 版权声明 - 帮助(?) - 广告服务 - 友情链接 - 服务项目 - 人才招聘
2003-2008 版权所有 © 晨风资讯网 未经授权禁止复制或建立镜像
CopyRight 2003-2008 www.Net118.com,All Rights Reserved.Design By ChenFeng Network Studio