using System;
using System.Data;
using System.Data.ADO;
public class MainClass
{
public static void Main ()
{
// 设定好连接字符串和选择命令字符串
string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
string strAccessSelect = "SELECT * FROM Categories";
//file:建立记录集,并把Categories这个表填进去
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add("Categories");
//file:建立ADO实例
ADOConnection myAccessConn = new ADOConnection(strAccessConn);
ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
myAccessDataSetCmd.SelectCommand = new ADOCommand(strAccessSelect,myAccessConn);
try
{
// 一个记录集可以包含多个表,我们把它们放到一个数组中035:
DataTable[] dta = myDataSet.Tables.All;
foreach (DataTable dt in dta)
{
Console.WriteLine("Found data table {0}", dt.TableName);
}
//file:下面的两行程序展示了两种从一个记录集中得到这个数据集中的表格数的方法
Console.WriteLine("{0} tables in data set", myDataSet.Tables.Count);
Console.WriteLine("{0} tables in data set", dta.Length);
//file:下面的几行程序说明了如何从一个记录集中依靠表格的名称来取得信息
Console.WriteLine("{0} rows in Categories table", myDataSet.Tables["Categories"].Rows.Count);
//file:列的信息是自动从数据库中得到的,所以我们可以用以下的代码047: Console.WriteLine("{0} columns in Categories table", myDataSet.Tables["Categories"].Columns.Count);
DataColumn[] drc = myDataSet.Tables["Categories"].Columns.All;
int i = 0;
foreach (DataColumn dc in drc)
{
//file:打印出列的下标和列的名称和数据类型053:
Console.WriteLine("Column name[{0}] is {1}, of type {2}",i++ , dc.ColumnName, dc.DataType);
}
DataRow[] dra = myDataSet.Tables["Categories"].Rows.All;
foreach (DataRow dr in dra)
{
//file:打印出CategoryID和CategoryName059:
Console.WriteLine("CategoryName[{0}] is {1}", dr[0], dr[1]);
}
}
catch (Exception e)
{
Console.WriteLine("Oooops. Caught an exception:\n{0}", e.Message);
}
}
}