我用OLEDB连接数据库可以成功:   OleDbConnection oleconn = new OleDbConnection();                string connstring = "Provider=msdaora;Data Source=SDB;User Id=GSQL;Password=gsql;";                oleconn.ConnectionString = connstring;                oleconn.Open();                oleconn.Dispose();用odp连接就报那个错误:
          OracleConnection oOracleConn = new OracleConnection();
                //string constr = "User Id=GSQL;Password=gsql;Data Source=SDB";
                string constr = "Data Source=SDB;Persist Security Info=True;User ID=GSQL;Password=gsql;";
                oOracleConn.ConnectionString = constr;
                oOracleConn.Open();估计还是odp这边配置的有些问题!!!

解决方案 »

  1.   


    把报错信息贴出来啊,特别是 ora错误信息,贴出来啊!
      

  2.   

    //using System.Data.OracleClient;
    using Oracle.DataAccess.Client;
    public partial class pan_OracleData : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = binddata();
                Response.Write("合计:"+heji(dt));
                Response.Write("<br />");
                Response.Write("行数:"+dt.Rows.Count);
               
                this.GridView1.DataSource = dt;
                this.GridView1.DataBind();
            }
        }    public static decimal heji(DataTable dt)
        {
            decimal i = 0;
            foreach (DataRow row in dt.Rows)
            {
                if (row["AMOUNT"] == DBNull.Value)
                    continue;
                i += Convert.ToDecimal(row["AMOUNT"]);
            }
            return i;
        }    public DataTable binddata()
        {       
            string strCnn = "Data Source=SDB;User ID=GSQL;Password=gsql";
            OracleConnection cnn = new OracleConnection(strCnn);       
            OracleCommand cmm = new OracleCommand();   
            cmm.Connection = cnn;
            cmm.CommandType = CommandType.StoredProcedure;
            cmm.CommandText = "PKG_AM_Report.P_ProfitsAnalysis";       OracleParameter param1 = new OracleParameter("v_StatisticsDate", OracleDbType.NVarchar2, ParameterDirection.Input);
           param1.Value = "2009-07-07";       OracleParameter param2 = new OracleParameter("v_BranchFlag",OracleDbType.NVarchar2, ParameterDirection.Input);
           param2.Value = "fdj";       OracleParameter param3 = new OracleParameter("cur_name", OracleDbType.RefCursor, ParameterDirection.Output);       cmm.Parameters.Add(param1);
           cmm.Parameters.Add(param2);
           cmm.Parameters.Add(param3);        try
            {
                cnn.Open();
                OracleDataAdapter ad = new OracleDataAdapter(cmm);
                DataSet ds = new DataSet();
                ad.Fill(ds);
                return ds.Tables[0];
            }
            catch (Exception e)
            {
                Console.Write(e.Message);
                Console.Read();
            }
            finally
            {
                cnn.Close();
            }
            return null;
        }
    }