并应该是程序问题,因为程序在别人机子上是好的。错误信息:发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。

解决方案 »

  1.   

    在你的电脑上重装下一Oracle的客户端,再试一下
      

  2.   

    public string connectora="Provider=MSDAORA.1;Password=密码;User ID=用户名;Data Source=联结串
    ;Persist Security Info=True";
    private OleDbCommand cmdOra=new OleDbCommand(); #region 连接Oracle数据库
    public OleDbConnection ConnectDB() 
    {
    try
    {
    OleDbConnection conn=new OleDbConnection();
    conn.ConnectionString=connectora;
    conn.Open();
    return conn;
    }
    catch
    {
    return null;
    }
    }
    #endregion--用上面的这条联结就可以了,
    此外,如果你直接用.net的oledbconnection的话,直接这么用就可以了. 如果你用.net2003的oracleClient的话, 要另一个联结,但是要求是oracle 8.1.7 release 3以上的版本.
      

  3.   

    我的辕马:
    public UserInfo AuthenticateUser(string LoginID,string pwd,string strMacAddr,string NodeName,bool Ingore)
    {
    if(mcnStr == "")//连接字符串为空,则抛出错误
    {
    throw(new ArgumentNullException("ConnectionString","数据库连接字符串为"));
    }
    //局部变量说明,如在此定义连接变量,如下
    OleDbConnection cn = new OleDbConnection();
    OleDbCommand cmd;

    UserInfo retUserInfo; //返回的结果存放在该变量中 try
    {
    //主程序块
    cn.ConnectionString = mcnStr;
    cn.Open();
                                         ——————这里抛出连接错误,我想我们之间没有什么区别。不知道是不是oledb的驱动不准确导致的。
      

  4.   

    UserInfo是什么类型??  还有,如果为空的时候抛出了异常, 就返回,如果有了异常,这时候mcnstr为空,那么cn.Open()就会出现异常.
    if(mcnStr == "")
    {
        throw(new ArgumentNullException("ConnectionString","数据库连接字符串为"));
        return 一个值;
    }
        OleDbConnection cn = new OleDbConnection();
        OleDbCommand cmd;
        UserInfo retUserInfo;
    try
    {
        cn.ConnectionString = mcnStr;
        cn.Open();
        ....
    }
    catch(Exception ex)
    {
        MessageBox.show(ex.message);  //看看出什么错误.
    }
      

  5.   

    抛出的错误:
    未处理的“System.Exception”类型的异常出现在 WindowsApplication2.exe 中。其他信息: System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
       at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
       at System.Data.OleDb.OleDbConnection.InitializeProvider()
       at System.Data.OleDb.OleDbConnection.Open()
       at WindowsApplication2.Form1.Button1_Click(Object sender, EventArgs e) in D:\tova_tamsn\WindowsApplication2\WindowsApplication2\Form1.vb:line 67userinfo是我们自定义的一个枚举类型,包含了登陆用户的一些信息,用于全局。