private void button5_Click(object sender, EventArgs e)
        {
            //数据库的连接字符串。
            string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + System.Environment.CurrentDirectory + @"\huafei.mdb";
            //连接对象创建。
            MyOleConn = new OleDbConnection(ConStr);
            //连接对象打开数据库的连接。
            MyOleConn.Open();
            //创建内存数据集对象。
            //查询所有fertilizer列的值,求和
            string sqlStr = "select sum(库存量) from fertilizer";            //执行语句,结果存入odr
            OracleCommand oc = new OracleCommand(sqlStr, MyOleConn);
            OracleDataReader odr = oc.ExecuteReader();            //odr的值转成string,显示在textbox1中
            odr.Read();
            textBox5.Text = Convert.ToString(odr.GetInt32(0));
        }
问题是OracleCommand和OracleDataReader未能找到类型或命令空间名称。。我用的数据库是Access

解决方案 »

  1.   

    Access使用
    using System.Data;
    using System.Data.OleDb;<add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>  
    public static void ExecuteSql(string strSQL)   
      {   
      OleDbConnection connection = new OleDbConnection(connectionString);   
      OleDbCommand cmd = new OleDbCommand(strSQL, connection);   
      try   
      {   
      connection.Open();   
      OleDbDataReader myReader = cmd.ExecuteReader();   
     
      }   
      catch (System.Data.OleDb.OleDbException e)   
      {   
      throw new Exception(e.Message);   
      }   
        
      }   
     
      

  2.   

    Oracle是一种数据库
    Access是另一种数据库
    Access应该用的是using System.Data.OleDb命名空间
    不管是连接还是命令的类,类名前面都是Ole三个字,楼主是张冠李戴了
      

  3.   

    配置文件<appSettings>
        <add key="AccessConnString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
        <add key="dbPath" value="xx.mdb"/>
      </appSettings>
    获取连接字符串
    connString = ConfigurationManager.AppSettings["AccessConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]).ToString();
      

  4.   

    碰到这种问题,是因为没有using响应的类型或命令空间名称。可以把光标移到OracleCommand上,点击Alt+F10,选择using OracleCommand。
      

  5.   

    楼主用的是Access数据库,就不能试用Oracle的东西了,我帮你修改的代码如下:    //数据库的连接字符串。
                string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + System.Environment.CurrentDirectory + @"\huafei.mdb";
                //连接对象创建。
                OleDbConnection MyOleConn = new OleDbConnection(ConStr);
                //连接对象打开数据库的连接。
                MyOleConn.Open();
                //创建内存数据集对象。
                //查询所有fertilizer列的值,求和
                string sqlStr = "select sum(库存量) from fertilizer";            //执行语句,结果存入odr
                OleDbCommand oc = new OleDbCommand(sqlStr, MyOleConn);
                OleDbDataReader odr = oc.ExecuteReader();            //odr的值转成string,显示在textbox1中
                odr.Read();
                textBox5.Text = Convert.ToString(odr.GetInt32(0));
      

  6.   

    5楼的高手
    //查询所有fertilizer列的值,求和
                string sqlStr = "select sum(库存量) from fertilizer";我的Access文档名是huafei。表名师fertilizer。所要加的列名是库存量。我看这觉得不对吧。还有你帮我看看需要定义的类型或命令空间名称
    十分感谢
      

  7.   

    楼主要库存量的列名可以改这个: string sqlStr = "select sum(库存量) from fertilizer";为: string sqlStr = "select sum(库存量) as 库存量 from fertilizer";
    需要的命名空间:using System.Data.OleDb;
    using System.Data;