【问题标题】:Connection not opening in visual studio连接未在视觉工作室中打开
【发布时间】:2015-01-10 20:05:35
【问题描述】:

对于我的 C# 应用程序,我需要连接 oracle 数据库。我一直使用相同的连接,它与其他应用程序完美配合。添加了我一直使用的相同参考:Oracle.DataAcces

这就是问题所在,我不知道如何解决。

Monime_V2.0.dll 中出现“Oracle.DataAccess.Client.OracleException”类型的异常,但未在用户代码中处理

附加信息:外部组件已抛出异常。

这是我用来连接的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

// Oracle 
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

namespace Monime_V2._0
{
    public class Database
    {
         protected OracleConnection conn;
         public OracleConnection Conn
        {
        get
        {
            return this.conn;
        }
    }

    public Database()
    {
        //dbconnectie
        this.conn = new OracleConnection();
        string pcn = "dbi284945"; //login
        string pw = "HGD7dh8daa"; //password
        this.conn.ConnectionString = "User Id=" + pcn + ";Password=" + pw + ";Data Source=" + "//192.168.15.50:1521/fhictora" + ";";
    }

这一切都错了:

private List<Account> GetListAccounts()
    {
        List<Account> listA = new List<Account>();

        string sql = "select * from MT_ACCOUNT";
        OracleCommand cmd = new OracleCommand(sql, this.conn);

        try
        {
            this.conn.Open(); // <-- This line of code sends me to the exception catcher
            OracleDataReader reader = cmd.ExecuteReader();

【问题讨论】:

  • 那么异常说明了什么?你想让我们猜测你的问题是什么吗?
  • 能否请您在 Catch() 函数中放置一个断点并查看异常?
  • 我在我的问题中发布的第一个引号块就是我得到的全部。所以是的,我希望你们能猜出问题可能是什么
  • 正如错误消息所示:“请查看堆栈跟踪以获取有关该错误的更多信息”。很可能存在内部异常,这将提供有关问题的更多详细信息。
  • 不要像那样重新抛出异常,你会丢失堆栈跟踪。使用throw;!

标签: c# asp.net oracle-sqldeveloper


【解决方案1】:

解决此错误消息的最佳方法是使用 OracleException:

try
{
  cmd.CommandType = CommandType.Text;
  dr = cmd.ExecuteReader(); 
}
catch (OracleException ex)
{
  Console.WriteLine("Record is not inserted into the database table.");
  Console.WriteLine("Exception Message: " + ex.Message);
  Console.WriteLine("Exception Source: " + ex.Source);
}

您会得到关于问题所在的更具描述性的诊断。例如,而不是这个无用的通用错误消息:

“Oracle.DataAccess.Client.OracleException”类型的异常

我明白了:

{"ORA-06550:第 1 行,第 7 列:\nPLS-00306:调用 'GETCLIENTBYID' 时参数的数量或类型错误\nORA-06550:第 1 行,第 7 列:\nPL/SQL:语句被忽略"}

【讨论】:

    【解决方案2】:

    你应该试试这个public database()的代码:

    public Database()
    {
            //dbconnectie
            this.conn = new OracleConnection();
            string pcn = "dbi284945"; //login
            string pw = "HGD7dh8daa"; //password
            string connection = string.Format("User Id ={0};password={1};Data Source=//192.168.15.50:1521/fhictora;",pcn,pw);
            this.conn.ConnectionString = connection;
    }
    

    【讨论】:

      【解决方案3】:

      您在运行代码时打开了 oracle 管理?

      【讨论】:

        猜你喜欢
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 2016-06-11
        • 1970-01-01
        • 1970-01-01
        • 2011-04-19
        • 2018-06-11
        • 1970-01-01
        相关资源
        最近更新 更多