在C#中使用ADO.Net部件访问Access数据库,可是using System.Data.ADO;语句报错说:“类型或命名空间名称ADO在类或命名空间System.Data中不存在(是否缺少程序集引用?)”这是怎么一回事,求达人赐教

解决方案 »

  1.   

    using System.Data.ADO;
    改成
    using System.Data.OleDb;
      

  2.   

    可是我想用的是ADO部件啊,我看了例子程序用的就是Data.ADO,为什么我会编译不通过??Data.里面确实没有ADO参数,需要导入什么DLL之类的文件么??
      

  3.   

    建议你看看ado.net技术内幕,里面有两者的比较,以及.net中为什么使用ado.net而非ado
      

  4.   

    可是人家的代码怎么我就没办法通过呢??还是ADO的问题,求达人赐教~~~
    001: using System;
    002: using System.Data;
    003: using System.Data.ADO;
    004: 
    005: public class MainClass 
    006: {
    007: public static void Main ()
    008: {
    009: // 设定好连接字符串和选择命令字符串010: string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
    011: string strAccessSelect = "SELECT * FROM Categories";
    012: 
    013: //建立记录集,并把Categories这个表填进去
    014: DataSet myDataSet = new DataSet();
    015: myDataSet.Tables.Add("Categories");
    016: 
    017: //建立ADO实例018: ADOConnection myAccessConn = new ADOConnection(strAccessConn);
    019: ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand();
    020: myAccessDataSetCmd.SelectCommand = new ADOCommand(strAccessSelect,myAccessConn);
    021: 
    022: myAccessConn.Open();
    023: try
    024: {
    025: myAccessDataSetCmd.FillDataSet(myDataSet,"Categories");
    026: }
    027: finally
    028: {
    029: myAccessConn.Close();
    030: }
    031: 
    032: try
    033: {
    034: // 一个记录集可以包含多个表,我们把它们放到一个数组中035: DataTable[] dta = myDataSet.Tables.All;
    036: foreach (DataTable dt in dta)
    037: {
    038: Console.WriteLine("Found data table {0}", dt.TableName);
    039: }
    040: 
    041: //下面的两行程序展示了两种从一个记录集中得到这个数据集中的表格数的方法
    042: Console.WriteLine("{0} tables in data set", myDataSet.Tables.Count);
    043: Console.WriteLine("{0} tables in data set", dta.Length);
    044: //下面的几行程序说明了如何从一个记录集中依靠表格的名称来取得信息
    045: Console.WriteLine("{0} rows in Categories table", myDataSet.Tables["Categories"].Rows.Count);
    046: //列的信息是自动从数据库中得到的,所以我们可以用以下的代码047: Console.WriteLine("{0} columns in Categories table", myDataSet.Tables["Categories"].Columns.Count);
    048: DataColumn[] drc = myDataSet.Tables["Categories"].Columns.All;
    049: int i = 0;
    050: foreach (DataColumn dc in drc)
    051: {
    052: //打印出列的下标和列的名称和数据类型053: Console.WriteLine("Column name[{0}] is {1}, of type {2}",i++ , dc.ColumnName, dc.DataType);
    054: }
    055: DataRow[] dra = myDataSet.Tables["Categories"].Rows.All;
    056: foreach (DataRow dr in dra)
    057: {
    058: //打印出CategoryID和CategoryName059: Console.WriteLine("CategoryName[{0}] is {1}", dr[0], dr[1]);
    060: }
    061: }
    062: catch (Exception e)
    063: {
    064: Console.WriteLine("Oooops. Caught an exception:\n{0}", e.Message);
    065: }
    066: }
    067: }
      

  5.   

    ado 好像是支持sqlsever的吧
    ole好像支持其他的数据库!!
    至于ado。net无非就是一个数据访问框架!!~~
      

  6.   

    你学的是测试版vs.net的书,快买本新的吧,那本扔