Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# 在没有用户名和密码的情况下通过ODP在.Net上测试连接_C#_Odp.net - Fatal编程技术网

C# 在没有用户名和密码的情况下通过ODP在.Net上测试连接

C# 在没有用户名和密码的情况下通过ODP在.Net上测试连接,c#,odp.net,C#,Odp.net,我正在C和oracledb上开发一个桌面应用程序。我使用ODP通过连接字符串连接到DB,该字符串由用户名、密码和数据集组成 在出现登录屏幕之前的应用程序上,我想检查客户端是否可以到达数据库机器,如果没有连接,应用程序将给出错误(没有数据库连接)并关闭。 有没有办法测试连接。 我认为最好的方法是从tnsnames.ora和ping获取ip的ip和端口。如果适用,如何从C#上的tnsnames.ora获取ip和port?Oracle有一个命令行实用程序tnsping 您可以创建一个进程,运行此命令并

我正在
C
oracledb
上开发一个桌面应用程序。我使用
ODP
通过
连接字符串连接到
DB
,该字符串由
用户名
密码
数据集
组成

在出现
登录屏幕之前的应用程序上,我想检查
客户端是否可以到达
数据库机器
,如果没有连接,应用程序将给出错误(没有数据库连接)并关闭。 有没有办法测试连接。
我认为最好的方法是从
tnsnames.ora
ping
获取
ip
ip和
端口。如果适用,如何从
C#
上的
tnsnames.ora
获取
ip
port

Oracle有一个命令行实用程序
tnsping
您可以创建一个进程,运行此命令并解析输出以获取数据

tnsping TNSname


它应该在返回数据缓冲区的末尾返回“OK(n毫秒)”或“未能解析名称”

Oracle有一个命令行实用程序
tnsping
您可以创建一个进程,运行此命令并解析输出以获取数据

tnsping TNSname


如果您正在测试连接以查看数据库是否联机,则在返回数据缓冲区的末尾,它应该返回“OK(n毫秒)”或“未能解析名称”

,ping机器将不起作用。网络接口(即LAN或Wifi芯片组)可能会响应,即使计算机中没有运行数据库进程。是的,确实如此。可能是我可以向oracle db的端口号发送请求。也可能是我可以发送连接。使用空用户名和密码打开()请求,如果超时或密码错误,请检查异常。我应该解析异常字符串来检测这个吗?你有个好主意。通常,这些异常都是键入的,并且带有某种错误代码,因此您可以这样做。如果您正在测试连接以查看数据库是否联机,那么ping机器就不行了。网络接口(即LAN或Wifi芯片组)可能会响应,即使计算机中没有运行数据库进程。是的,确实如此。可能是我可以向oracle db的端口号发送请求。也可能是我可以发送连接。使用空用户名和密码打开()请求,如果超时或密码错误,请检查异常。我应该解析异常字符串来检测这个吗?你有个好主意。通常,这些异常都是类型化的,并且带有某种错误代码,所以您可以这样做。