回答
我想你可以使用Oracle.DataAccess
命名空间从ODP.NET
你可以使用这样的:
var _testConx = new OracleConnection(_testConnectionString);
var rezList = new List<Type>();
string _GetSQL = @"SELECT STATEMENT";
var dbCommand = new OracleCommand(_GetSQL , _testConx);
dbCommand .CommandType = CommandType.Text;
var reader = dbCommand .ExecuteReader();
while (reader.Read())
{
var rez = new Type();
rez.Field1= TryGetInt(reader.GetOracleValue(0));
rez.Field2= TryGetString(reader.GetOracleValue(1));
rezList.Add(rez);
}
return rezList;
这将使用oracle客户端连接到远程数据库。
可以
我们正在使用Oracle提供的OLEDB驱动程序连接到在.NET桌面应用程序远程Oracle数据库指定喜欢的配置文件外部的ressource的连接字符串。应该也适用于Web服务。
String conString = "Provider=OraOLEDB.Oracle.1;User ID=username;password=password;Data Source=your_tnsname;Persist Security Info=False";
String query = "Select 2 from dual";
OleDbConnection OleDbCon = new OleDbConnection(conString);
OleDbCon.Open();
OleDbCommand cmd = new OleDbCommand(query, OleDbCon);
OleDbDataReader reader = cmd.ExecuteReader();
reader.Read();
decimal dResult = reader.GetDecimal(0);
con.Close();
return Convert.ToInt32(dResult);
您应该添加适当的异常处理。
对不起,我不明白一步......这样,我必须安装Client Oracle(http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461。 HTML)? – Safari 2013-04-05 18:16:50
我喜欢使用System.Data.OracleClient。我知道它已被弃用,但它内置的事实使得它很容易使用。
我也喜欢使用System.Web中的SqlDataSource对象,即使在非ASP.NET应用程序中也是如此。以下是一些示例代码。然后,获取数据就像调用GetDataView()并传入select语句一样简单。您将需要自己实现GetDefaultConnectionString()和GetDefaultProviderName()。提供程序名称是“System.Data.OracleClient”,并且these应该让您开始使用连接字符串。
请注意,由于它依赖于SqlDataSource的System.Web,因此该应用程序将需要整个.NET Framework 4配置文件(不仅仅是较小的客户端配置文件)。取决于你所做的事情,这可能是也可能不是问题。你总是可以实现你自己的SqlDataSource的等价物,但是我不想重新发明轮子,除非它给我一个很好的优势。
/// <summary>
/// Creates a SqlDataSource object using the Default connectionstring in the web.config file and returns it.
/// </summary>
/// <returns>An SqlDataSource that has been initialized.</returns>
public static SqlDataSource GetDBConnection()
{
SqlDataSource db = new SqlDataSource();
db.ConnectionString = GetDefaultConnectionString();
db.ProviderName = GetDefaultProviderName();
return db;
}
/// <summary>
/// Creates a DataView object using the provided query and an SqlDataSource object.
/// </summary>
/// <param name="query">The select command to perform.</param>
/// <returns>A DataView with data results from executing the query.</returns>
public static DataView GetDataView(string query)
{
SqlDataSource ds = GetDBConnection();
ds.SelectCommand = query;
DataView dv = (DataView)ds.Select(DataSourceSelectArguments.Empty);
return dv;
}
进行更新/插入/删除也同样容易...
SqlDataSource ds=GetDBConnection();
ds.InsertCommand="insert into my_table values ('5','6')";
ds.Insert();
对不起,我不明白一步......这样,我必须安装Client Oracle(http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461。 HTML)? – Safari 2013-04-05 18:18:13
是的,您必须使用Oracle客户端。我相信System.Data.OracleClient和Oracle.DataAccess(ODP.NET)都需要它,因为它们使用Oracle调用接口(oci.dll)。不确定第三方产品。这很简单 - 只需下载客户端,安装它,并且您应该可以使用其中一个答案(OLEDB除外)开始。我不熟悉OLEDB。 – mason 2013-04-08 16:02:33
请参阅http://geekswithblogs.net/interfacemirror/archive/2010/12/19/143176.aspx – mason 2013-04-08 16:03:13
我建议使用ODP.NET,因为它是免费的,是“官方”的ADO.NET兼容用于连接提供商甲骨文。
要就无需单独安装Oracle客户端,下载Oracle Instant Client,从那里将以下文件饶你的用户...
oci.dll
Oracle.DataAccess.dll (the managed ODP.NET assembly itself)
orannzsbb11.dll
oraociei11.dll
OraOps11w.dll
...,并将它们与您的应用程序分发。
不幸的是,这些DLL中的大部分都是本地的(特定于32位/ 64位),因此您将无法构建“任何CPU”平台(尚未)。您可能会考虑使用“tnsnames.ora independent”connection string如:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
有商业选择,并且现在已经过时(并且也救不了你不必反正安装Oracle本机DLL)老微软的供应商。
要么等待Fully Managed Oracle Provider,或编辑您的项目文件(的MSBuild XML)有条件地包括根据构建平台上的32位或64位的DLL,与此类似:
<Choose>
<When Condition="'$(Platform)' == 'x64'">
<ItemGroup>
<Reference Include="Oracle.DataAccess, processorArchitecture=x64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ThirdParty\ODP.NET\x64\Oracle.DataAccess.dll</HintPath>
</Reference>
<Content Include="..\ThirdParty\ODP.NET\x64\oci.dll">
<Link>oci.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x64\orannzsbb11.dll">
<Link>orannzsbb11.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x64\oraociei11.dll">
<Link>oraociei11.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x64\OraOps11w.dll">
<Link>OraOps11w.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</When>
<When Condition="'$(Platform)' == 'x86'">
<ItemGroup>
<Reference Include="Oracle.DataAccess, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ThirdParty\ODP.NET\x86\Oracle.DataAccess.dll</HintPath>
</Reference>
<Content Include="..\ThirdParty\ODP.NET\x86\oci.dll">
<Link>oci.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x86\orannzsbb11.dll">
<Link>orannzsbb11.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x86\oraociei11.dll">
<Link>oraociei11.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\ThirdParty\ODP.NET\x86\OraOps11w.dll">
<Link>OraOps11w.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</When>
</Choose>
- 1. winform(C#)连接远程oracle数据库
- 2. 如何使用ASP.NET连接到远程Oracle数据库?
- 3. 如何将Spring Boot JAR连接到远程Oracle数据库?
- 4. 使用Oracle客户端连接到远程Oracle数据库
- 5. 如何从ASP.Net应用程序远程连接oracle数据库
- 6. 如何使用Ruby连接远程oracle数据库?
- 7. 如何使用PL/SQL Developer连接远程Oracle数据库?
- 8. 如何连接远程mysql数据库
- 9. 如何连接到oracle数据库:((
- 10. 连接到Oracle数据库
- 11. 连接到Oracle数据库
- 12. 使用Python连接到远程Oracle数据库
- 13. Zend Server CE - ZF:无法连接到远程Oracle数据库
- 14. 使用ASP.NET将错误连接到远程Oracle XE数据库
- 15. 无法使用JDBC连接到远程oracle数据库
- 16. 通过visual studio 2010连接到远程oracle数据库
- 17. 从ASP.NET连接到远程Oracle数据库
- 18. 连接到使用远程Oracle数据库的PHP 5.6
- 19. 从Visual Studio连接到远程Oracle数据库
- 20. 远程连接到Access数据库
- 21. OCCI - 连接到远程数据库
- 22. 未连接到Firebird数据库远程
- 23. 远程连接到MySQL数据库
- 24. PyMySQL连接到远程数据库
- 25. 远程连接到clearDB heroku数据库
- 26. 连接到远程MySQL数据库
- 27. 连接到远程数据库
- 28. 如何从iPhone应用程序连接到远程数据库?
- 29. 如何托管并连接到连接到数据库的远程WCF服务?
- 30. 如何将rails应用程序连接到oracle数据库?
对不起,我不明白一步...这样,我必须安装客户端Oracle(http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461 html的)? – Safari 2013-04-05 18:14:58