C#/Oracle:连接
我一直在试图找出如何将c#程序与oracle 10g db连接起来。我发现的所有代码示例总是使用.net framework的ado.net oracleclient(已弃用->不好),或system.data.ado(显然使用了不允许使用的数据源(odbc)->或oracle开发工具odt(如odbc?),后者支持olny visual studio 2005 for 10g,而vs 2010仅支持11g。。。有没有什么方法可以连接,就像delphi(devart,odac)可以连接一样,在我被告知研究连接c#和oracle的可能性之前,我使用过delphi?我认为最好的方法是在oracle数据库上执行操作C#/Oracle:连接,c#,oracle,oracle10g,database-connection,C#,Oracle,Oracle10g,Database Connection,我一直在试图找出如何将c#程序与oracle 10g db连接起来。我发现的所有代码示例总是使用.net framework的ado.net oracleclient(已弃用->不好),或system.data.ado(显然使用了不允许使用的数据源(odbc)->或oracle开发工具odt(如odbc?),后者支持olny visual studio 2005 for 10g,而vs 2010仅支持11g。。。有没有什么方法可以连接,就像delphi(devart,odac)可以连接一样,在我
这对您来说也是一个有趣的问题我认为最好的方法是在oracle数据库上执行操作
这对您来说可能也是一个有趣的问题最简单的方法是使用
System.Data.OleDb
,这对于任何版本的Visual Studio和.Net Framework都应该可以正常工作,除非您需要执行OleDb上不支持的任何Oracle特定查询
imho的一大好处是,您不必部署任何特殊的第三方数据库驱动程序。最简单的方法是使用
System.Data.OleDb
,它应该适用于任何版本的Visual Studio和.Net Framework,除非您需要执行OleDb不支持的任何Oracle特定查询
imho的一大好处是,您不必部署任何特殊的第三方数据库驱动程序。在上,您可以找到多个提供商的连接字符串示例
我建议使用ODP.NET或OracleClient之类的东西,它使用数据库的本机接口
不同数据库之间的数据类非常相似,因此您可以举一个例子,使用SqlClient
classes()替换OracleClient
类,并更改连接字符串。在上,您可以找到多个提供者的连接字符串示例
我建议使用ODP.NET或OracleClient之类的东西,它使用数据库的本机接口
不同数据库之间的数据类非常相似,因此您可以举一个例子,使用SqlClient
classes()替换OracleClient
classes,并更改连接字符串。请参阅以下代码;)
请参阅以下代码;)
我花了很长时间才意识到我的错误,当时我正试图使用oracle数据访问依赖项将dotnet应用程序从X86迁移到X64
oracle连接问题刚刚从OracleConnection转移到OleDbConnection解决了。谢谢 我花了很长时间才意识到我的错误,当时我正试图使用oracle数据访问依赖项将dotnet应用程序从X86迁移到X64
oracle连接问题刚刚从OracleConnection转移到OleDbConnection解决了。谢谢 我想ODP11是为Oracle11g设计的吧?我有一个10g数据库,但vs 2010也有一个10g数据库,link供您参考您的意思是说它不适用于Framework 4.0,在任何情况下,它们都是为向后兼容而构建的,所以不应该是issue@EikeCochu ODP它可用于4.0框架(32位和64位)。所有ODP都适用于Oracle 9i及以上版本。如果它在没有11g客户端的情况下工作(即使安装程序右上角有一个大的11g,并且安装程序需要我的11g客户端安装路径),那么我很乐意安装它,谢谢!我想ODP11是为Oracle11g设计的吧?我有一个10g数据库,但vs 2010也有一个10g数据库,link供您参考您的意思是说它不适用于Framework 4.0,在任何情况下,它们都是为向后兼容而构建的,所以不应该是issue@EikeCochu ODP它可用于4.0框架(32位和64位)。所有ODP都适用于Oracle 9i及以上版本。如果它在没有11g客户端的情况下工作(即使安装程序右上角有一个大的11g,并且安装程序需要我的11g客户端安装路径),那么我很乐意安装它,谢谢!OracleClient已被弃用,似乎10g的odp/odt/odac(都一样?)仅适用于vs2005@Eike好的,看来微软正在放弃他们的实现。您可以将ODP.NET 11与10g服务器一起使用:OracleClient已被弃用,似乎10g的ODP/odt/odac(都一样?)仅适用于vs2005@Eike好的,看来微软正在放弃他们的实现。您可以将ODP.NET 11与10g服务器一起使用:是的,thx是这样工作的,但是这个示例需要一个数据源,它必须在系统首选项中设置,我无法为每个用户设置和维护这些数据源。如果没有这个“数据源”,我永远无法成功连接,我认为您无法获得“oracle数据源”在所有用户中…@Eike此OleDb连接不需要任何系统数据源配置。是否需要?数据源是ORCL,必须事先设置,否则该程序如何知道如何连接到dbyeah thx,以这种方式工作,但本例需要一个必须在系统首选项中设置的数据源,而且我无法为每个用户设置和维护这些数据源如果没有这个“数据源”,我永远无法成功连接,我不认为您可以获得每个用户的“oracle数据源”…@Eike这个OleDb连接不需要任何系统数据源配置。是吗?数据源是ORCL,必须事先设置,否则该程序如何知道如何连接到dbsee我的评论到下面的V4Vendetta,它应该可以工作。请用VS2010发布您的问题,但它确实支持它。您有哪些问题使您相信最新版本的ODP不能与vs2010和10g配合使用?您需要使用11g客户端软件,但这将连接到10g(和9i)()请参阅我的评论
using System;
using System.Data;
using System.Data.OleDb;
class OleDbConnectionOracle
{
public static void Main()
{
string connectionString = "provider=MSDAORA;data source=ORCL;user id=SCOTT;password=TIGER";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
myOleDbCommand.CommandText = "SELECT empno, ename, sal FROM emp WHERE empno = 7369";
myOleDbConnection.Open();
OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
myOleDbDataReader.Read();
myOleDbDataReader.Close();
myOleDbConnection.Close();
}
}