简体   繁体   English

Oracle数据库连接

[英]Oracle Database Connection

I'm beginner about web programming and I have a problem with oracle db connection. 我是有关Web编程的初学者,并且oracle db连接有问题。 My code is working well with Mssql but it's not working with oracle. 我的代码在Mssql上运行良好,但在oracle上无法运行。 I want to change db to oracle from mssql. 我想将db从mssql更改为oracle。 I have downloaded odac. 我已经下载了odac。 Here is my SqlOperations class. 这是我的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();
        }
    }

}

} }

and here is my webconfig code: 这是我的webconfig代码:

<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>

So whats wrong within can you help me 那内心有什么问题可以帮我吗

Just change parameter in OracleConnection to 只需将OracleConnection中的参数更改为

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SYS-CDB12c)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); 服务器=(描述=(地址=(协议= TCP)(主机= SYS-CDB12c)(端口= 1521))(连接_数据=(服务名称= MyOracleSID))); uid=HR;pwd=hr; uid = HR; pwd = hr;

Also change myOracleSID to your oracle database instance name. 还要将myOracleSID更改为您的oracle数据库实例名称。

In your case connection string in web.config are not concerns to your connection. 在您的情况下,web.config中的连接字符串与您的连接无关。 Because you pass connection as string parameter whitout using configuration manager. 因为您使用配置管理器将连接作为字符串参数传递出去。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM