C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 29 を表示中)
■13607 / )  接続エラーの原因及び処置方法
□投稿者/ NORTH (14回)-(2008/01/31(Thu) 21:06:28)

分類:[VB.NET/VB2005] 

SQLサーバー2005
VB.NET


販売管理システムの起動で最初ログイン画面を表示するのですが、20回に1回ぐらい
の割合で接続エラーになります。
プログラムは下記の通りです。
原因はたまたまタイミングが悪いからなんでしょうか?
LAN環境はVPN接続(ルータ有)と社内LAN(ルータ無し)の2種類ですが
VPN接続環境で時々エラーが出るようです。
原因がわかれば教えて下さい。
また、わからない場合は2回程リトライしようと思っているのですが、下記の
Openメッソッドでループ処理をしたいのですが、書き方がわかりません。
わかる方教えて下さい。
Openメッソッドの中に記述して下さい。
(ログイン画面でループするのはNG。他にも同じようなPGがたくさんあるため)



DB接続プログラム
Public Function Open() As Boolean

Dim blnRet As Boolean = False
Try
Select Case Mode
Case 0, 1
Command = Connection.CreateCommand
Command.Connection = Connection
DataAdapter = New SqlDataAdapter(Command)
DataAdapter.SelectCommand = Command
Connection.Open()
IsOpen = True
Case 1
Case 2
End Select
blnRet = True
Catch ex As SqlException
If ex.ErrorCode = -2146232060 Then
Select Case Mode
Case 0, 1
Command = Nothing
DataAdapter = Nothing
Connection = Nothing
IsOpen = False
Case 1
Case 2
End Select
MessageBox.Show("接続に失敗しました1。再度クリックして下さい。", MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
'Throw ex
KillMe()
End If
Catch ex As Exception
Select Case Mode
Case 0, 1
Command = Nothing
DataAdapter = Nothing
Connection = Nothing
IsOpen = False
Case 1
Case 2
End Select
MessageBox.Show("接続に失敗しました2。再度クリックして下さい。", MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
'Throw ex
KillMe()
Finally
Open = blnRet
End Try

End Function



ログイン画面起動プログラム
Public Sub Main()

Try
If Not ClsCommonChk.FncRepertStart(Process.GetCurrentProcess) Then
End
End If

PRG_ID_C = My.Application.Info.AssemblyName

param.Param.PRG_ID_C = PRG_ID_C
param.Param.Para1 = "#"
param.Param.Para2 = "#"
param.Param.Para3 = "#"
param.Param.Para4 = "#"
param.Param.Para5 = "#"

If ClsParameter.GetConfig(Application.StartupPath) Then
clsDB = New ClsDataBase(ClsParameter.ConnectionString)
clsDB.Open()
clsMsg = New ClsMessage(clsDB, param)
clsExclusive = New ClsExclusive(clsDB)

Application.EnableVisualStyles()
Application.Run(ログイン)
Else
MessageBox.Show("AAA.xmlが見つかりません。", MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Finally
If clsDB.IsOpen Then
clsDB.Close()
End If
clsDB = Nothing
clsMsg = Nothing
End Try

End Sub

返信 編集キー/


管理者用

- Child Tree -