日期:2011-10-26  浏览次数:20415 次

using System;
using System.Data;
using System.Data.ADO;

public class MainClass
{
   public static void Main ()
   {
      // set Access connection and select strings
      string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
      string strAccessSelect = "SELECT * FROM Categories";

      //Create the dataset and add the Categories table to it
      DataSet myDataSet = new DataSet();
      myDataSet.Tables.Add("Categories");
      
      // create my Access objects
      ADOConnection myAccessConn = new ADOConnection(strAccessConn);
      ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
      myAccessDataSetCmd.SelectCommand = new ADOCommand(strAccessSelect,myAccessConn);

      myAccessConn.Open();
      try
      {
         myAccessDataSetCmd.FillDataSet(myDataSet,"Categories");
      }
      finally
      {
         myAccessConn.Close();
      }

      try
      {
         /* A dataSet can contain multiple tables,
           so let's get them all into an array */
         DataTable[] dta = myDataSet.Tables.All;
         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.Length);
         /* 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);
         DataColumn[] drc = myDataSet.Tables["Categories"].Columns.All;