0

10 個のデータベースにアクセスし、データベースごとに 10 個の異なるデータセットを埋める VB.Net プログラムがあります。プログラムは、アクティビティがない午後 11 時に自動的に実行されるため、それが最速の方法でなくても問題ありませんでした。

ただし、問題は次のとおりです。オフラインのデータベースに接続しようとすると (インターネットの停止、VPN トンネルのダウンなど)、プログラムは続行されず、最終的にタイムアウトになります。以下は、繰り返し実行されるコードのスナップショットです。各サイト。

Me.1TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"
Me.2TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"
Me.3TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"

次に、上記の情報を使用して HTML テーブルを作成します。

<html>
    <body>
        <table border="1">
            <tr><th>Description</th><th> Location </th></tr>
                <%= From opentime In Me.Dataset.1.AsEnumerable _
                    Select <tr><td>Open Time</td>
                        <td><%= 1.TimeIn.ToString("hh:mm tt") %></td>
                        <td width="50"><%= 1.Name %></td></tr> %>

等...

次に、次のデータベースに移動します。

Me.1TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.2;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"
    Me.2TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.2;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"
    Me.3TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.2;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"

次に、そのデータベースのテーブルを作成します。

<html>
    <body>
        <table border="1">
            <tr><th>Description</th><th> Location </th></tr>
            <%= From opentime In Me.Dataset.1.AsEnumerable _
                Select <tr><td>Open Time</td>
                    <td><%= 1.TimeIn.ToString("hh:mm tt") %></td>
                    <td width="50"><%= 1.Name %></td></tr> %>

最初の試行 (データソース 10.0.1.1) がタイムアウトした場合、またはプログラムに接続できない場合、エラーが発生します。最初のデータソースでエラーが検出された場合、プログラムを次のデータソースに移動させるにはどうすればよいですか? 残りのテーブル アダプターをスキップする必要があることに注意してください (この例では 2、データ ソース 10.0.1.1 の場合は 3)。

4

1 に答える 1

1

データベースへの接続ごとに Try/Catch ブロックを使用します。

Try
    Me.1TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=cat;Persist Security Info=True;User ID=id;Password=password;Connection Lifetime=0"
    'your code here to create HTML table'
Catch ex As Exception
End Try
于 2013-05-22T14:54:26.020 に答える