Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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#:首先测试DB2可用连接_C#_.net_Odbc_Db2 - Fatal编程技术网

C#:首先测试DB2可用连接

C#:首先测试DB2可用连接,c#,.net,odbc,db2,C#,.net,Odbc,Db2,我有一个C#.NET程序,运行一个连接到DB2数据库的ETL。有时这个数据库关闭了,所以我想在应用程序开始时做一次运行状况检查,看看数据库是否可用,而不需要实际调用任何存储过程或推送任何数据。下面是我现在使用的代码示例: OdbcConnection myODBCConnection = new OdbcConnection("DSN=DB2AA;UID=ABCD;PWD=1234;"); OdbcCommand myODBCCommand = new OdbcCommand(); myODBC

我有一个C#.NET程序,运行一个连接到DB2数据库的ETL。有时这个数据库关闭了,所以我想在应用程序开始时做一次运行状况检查,看看数据库是否可用,而不需要实际调用任何存储过程或推送任何数据。下面是我现在使用的代码示例:

OdbcConnection myODBCConnection = new OdbcConnection("DSN=DB2AA;UID=ABCD;PWD=1234;");
OdbcCommand myODBCCommand = new OdbcCommand();
myODBCCommand.CommandType = CommandType.StoredProcedure;
myODBCCommand.CommandText = "{CALL SYSPROC.ABC001(?, ?)}";
myODBCCommand.Parameters.Add("INPUT", OdbcType.VarChar, 500);
myODBCCommand.Parameters["INPUT"] = myString

myODBCCommand.Connection = myODBCConnection
myODBCConnection.Open();

OdbcTransaction myTrans;
myTrans = myODBCConnection.BeginTransaction();
myODBCCommand.Transaction = myTrans;
myTrans.Commit();
myODBCCommand.ExecuteNonQuery();
myODBCConnection.Close();

在不实际推送任何数据的情况下测试此连接的最佳方法是什么?

您可以简单地运行一些不常见的select查询来检查数据库是否可用

您可以尝试做一些简单的事情,如:

Select 1

这些简单的查询甚至不涉及任何表,但只有在rdbms运行时才会返回

注意:这些示例适用于sql server,但可能适用于db2。虽然类似的概念应该是可行的,但我还没有对db2进行过实时检查

注意2:仔细查看代码后,您真正需要做的就是检查odbc连接的.Open()调用是否成功

Select getdate()