连接未在视觉工作室中打开

本文关键字:工作室 视觉 连接 | 更新日期: 2023-09-27 18:37:07

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

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

在 Monime_V2.0 中发生了类型为"Oracle.DataAccess.Client.OracleException"的异常.dll但未在用户代码中处理

其他信息:外部组件引发异常。

这是我用来连接的:

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();

连接未在视觉工作室中打开

解决此错误消息的最佳方法是使用 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 列:'PLS-00306:调用"GETCLIENTBYID"时参数的数量或类型错误'ORA-06550:第 1 行,第 7 列:'PL/SQL:语句被忽略"}

您应该尝试以下代码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;
}
运行

代码时是否打开了预言机管理?