Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Oracle数据库连接_C#_Asp.net_Database_Oracle_Database Connection - Fatal编程技术网

C# Oracle数据库连接

C# Oracle数据库连接,c#,asp.net,database,oracle,database-connection,C#,Asp.net,Database,Oracle,Database Connection,我是web编程的初学者,我对oracle db连接有问题。我的代码在Mssql中运行良好,但在oracle中不起作用。我想将数据库从mssql更改为oracle。 我已经下载了odac。这是我的SqlOperations类 using System; using System.Collections.Generic; using System.Data; using Oracle.DataAccess; using System.Data.OracleClient; using System.D

我是web编程的初学者,我对oracle db连接有问题。我的代码在Mssql中运行良好,但在oracle中不起作用。我想将数据库从mssql更改为oracle。 我已经下载了odac。这是我的SqlOperations类

using System;
using System.Collections.Generic;
using System.Data;
using Oracle.DataAccess;
using System.Data.OracleClient;
using System.Data.Odbc;
using System.Linq;
using System.Web;

namespace BagciEmlak
{
public class SqlOperations
{
    OracleConnection con;
    OracleCommand cmd;
    OracleDataAdapter sda;
    DataTable dt;
    public OracleConnection OracleConnect()
    {
        try
        {
            con = new OracleConnection ("Data Source=SYS-CDB12c; User ID=HR; Password=hr; Unicode=true;");
            con.Open();
            return con;
        }
        catch (OracleException e)
        {

            throw;
        }

    }
    public int Command(string ConStr, OracleConnection conn)
    {
        try
        {
            cmd = new OracleCommand(ConStr, conn);

            return cmd.ExecuteNonQuery();
        }
        catch (Exception e)
        {

            throw;
        }
        finally
        {
            cmd.Dispose();
            conn.Close();
            conn.Dispose();
        }


    }
    public DataTable GetDataTable(string ConStr, OracleConnection conn)
    {
        try
        {
            dt = new DataTable();
            sda = new OracleDataAdapter(ConStr, conn);
            sda.Fill(dt);

            return dt;
        }
        catch (Exception e)
        {

            throw;
        }
        finally
        {
            sda.Dispose();
            conn.Close();
            conn.Dispose();
        }

    }
    public DataRow GetDataRow(string ConStr, OracleConnection conn)
    {
        dt = GetDataTable(ConStr, conn);
        if (dt.Rows.Count==0)
        {
            return null;
        }
        else
        {
            return dt.Rows[0];
        }
    }
    public string GetDataCell(string ConStr, OracleConnection conn)
    {
        dt = GetDataTable(ConStr, conn);
        if (dt.Rows.Count == 0)
        {
            return null;
        }
        else
        {
            return dt.Rows[0][0].ToString();
        }
    }

}
}

这是我的网络配置代码:

<connectionStrings>
    <add name="{ConnectionName}" 
    connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=HR;Password=HR;" 
    providerName="Oracle.DataAccess.Client"/>
 </connectionStrings>


所以,您能帮我把OracleConnection中的参数更改为吗

服务器=(描述=(地址=(协议=TCP)(主机=SYS-CDB12c)(端口=1521))(连接数据=(服务名称=MyOracleSID)); uid=HR;pwd=hr

还要将myOracleSID更改为oracle数据库实例名称


在您的情况下,web.config中的连接字符串与您的连接无关。因为您使用configuration manager将连接作为字符串参数whitout传递。

编译时没有错误,但在chrome中我看到:“/”应用程序中的服务器错误。无法加载文件或程序集“Oracle.DataAccess”或其依赖项之一。试图加载格式不正确的程序。
System.Data.OracleClient
已被弃用。不要用它。使用。并且不要将(OracleConnection)对象存储为字段。当然,为什么要使用DataTable而不是强类型对象?要获得TNSNAMES文件,还需要下载32位的Oracle.Data.Client。。您可以像使用Sql Server等一样使用连接字符串。。我每天都使用Oracle和Sql Server。例如,根据您的项目设置,您可以将其更改为x86,然后将配置文件更改为不同的外观。。例如
我做了所有的事情,但这个错误没有解决。然后我发现它有32位/64位的问题。当我更改平台目标x86格式时,这个错误可能正在解决。但现在我接受了这样一个例外:System.NullReferenceException:'对象引用未设置为对象的实例。你知道这件事吗?我检查了我的用户名和密码,但它是真的…请显示您的web配置连接字符串部分。正如我现在理解的配置管理器中的问题。无法通过传递的名称找到连接字符串。否。我要求提供web.config内容)。在代码和web.config中检查连接字符串的名称。它们是否相同?请将webConfig中的连接字符串名称更改为connectionString。没有{}作用域。