VB.net SQLserver接続とレジストリ
◎SQLserver接続とレジストリ
'SQLSREVER接続
'接続文字列を生成する
Dim St As String
Dim Cn As New System.Data.SqlClient.SqlConnection
Dim SQL As System.Data.SqlClient.SqlCommand
'レジストリ
'キー(HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Fkanri50\Fk5Db)を開く
Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\VB and VBA Program Settings\Fkanri50\Fk5Db", False)
'キーが存在しないときは null が返される
If regkey Is Nothing Then
Return
End If
'サーバー名
Dim ServerName As String = DirectCast(regkey.GetValue("DATA SOURCE"), String)
'ユーザーID
Dim UserID As String = DirectCast(regkey.GetValue("UID"), String)
'パスワード
Dim Password As String = DirectCast(regkey.GetValue("PWD"), String)
'複合化したパスワード
Password = Ango_Process(Password, "ogaryo")
'データベース
Dim DatabaseName As String = DirectCast(regkey.GetValue("INITIAL CATALOG"), String)
'閉じる
regkey.Close()
'取得したPS等などを保管
St = "Server=" & ServerName & ";"
St &= "User ID=" & UserID & ";"
St &= "Password=" & Password & ";"
St &= "Initial Catalog=" & DatabaseName
'データベースを開くために使用する文字列を取得
Cn.ConnectionString = St
SQL = Cn.CreateCommand
'データベース接続を開く
Cn.Open()
' 接続に成功した旨を表示する
Label1.Text = "更新中です。"
'待機中のイベントを処理する
My.Application.DoEvents()
'コントロールを初期化する
ProgressBar.Minimum = 0
ProgressBar.Maximum = xlMax - 4
ProgressBar.Value = 0
'空間メモリに入っているデータをSQL SreverにUpdateする。
For i = 0 To (xlMax - 4)
'進歩(%)
j = CInt(Fix*1 * 100))
' ''1秒間待機する(時間のかかる処理があるものとする)
' ''System.Threading.Thread.Sleep(10)
'ProgressBarの値を変更する
ProgressBar.Value = i
'待機中のイベントを処理する
My.Application.DoEvents()
'Labelのテキストを変更する()
Label.Text = j.ToString() & "%"
'更新作業
SQL.CommandText = MemoriSQL(i)
'SQLコマンドを実行
SQL.ExecuteNonQuery()
Next
' 接続に成功した旨を表示する
Label1.Text = "更新完了しました。"
' データベース接続を閉じる
Cn.Close()
*1:i / (xlMax - 4