如何使用C#列出网络上可用的所有Oracle服务器。我需要获取服务器名称和IP地址。经过一番搜索后发现,对于SqlServer,以下代码将起作用。
SqlDataSourceEnumerator.Instance.GetDataSources();
有没有办法对Oracle做同样的事情?
答案 0 :(得分:0)
您可能需要Oracle的.Net数据提供商。 Oracle提供了一些在线教程和文档here,以帮助您入门。
下载:Oracle Data Access Components (ODAC) for Windows
示例代码(由Oracle提供):
using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;
class DataSourceEnumSample
{
static void Main()
{
string ProviderName = "Oracle.DataAccess.Client";
DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);
if (factory.CanCreateDataSourceEnumerator)
{
DbDataSourceEnumerator dsenum = factory.CreateDataSourceEnumerator();
DataTable dt = dsenum.GetDataSources();
// Print the first column/row entry in the DataTable
Console.WriteLine(dt.Columns[0] + " : " + dt.Rows[0][0]);
Console.WriteLine(dt.Columns[1] + " : " + dt.Rows[0][1]);
Console.WriteLine(dt.Columns[2] + " : " + dt.Rows[0][2]);
Console.WriteLine(dt.Columns[3] + " : " + dt.Rows[0][3]);
Console.WriteLine(dt.Columns[4] + " : " + dt.Rows[0][4]);
}
else
Console.Write("Data source enumeration is not supported by provider");
}
}
返回的数据表包含:
获得服务器名称后,您可以通过Dns.GetHostAddresses(string hostname)
找到它的IP。