コメント |
[[場所 : 更新.Click]]
● イベントの最初で DB に接続して、最後で接続解除する
● いったん対象データを読み込んで、処理区分と矛盾が無いかチェック
● 更新に成功したら、表示データをクリアして第一会話へ移行する
@DIV
@C:green(' DB に接続)
If Not db.Connect() Then
MessageBox.Show("DB接続に失敗しました ", "エラー", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Dim Query As String = String.Format("select" + _
" * from 社員マスタ " + _
" where 社員コード = '{0}'", _
Me.社員コード.Text)
' ************************
' 修正
' ************************
If Me.処理区分.SelectedValue = 2 Then
If Not db.QueryAndRead(Query) Then
db.Close()
MessageBox.Show("入力された社員コードは他で削除されました ", _
"エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
Else
Query = "update 社員マスタ set "
Query += " 氏名 = '" + Me.氏名.InnerText + "'"
If (Me.フリガナ.InnerText).Trim() = "" Then
Query += " ,フリガナ = NULL"
Else
Query += " ,フリガナ = '" + Me.フリガナ.InnerText + "'"
End If
If Me.所属.SelectedIndex = -1 Then
Query += " ,NULL"
Else
Query += " ,所属 = '" + Me.所属.SelectedValue + "'"
End If
Query += " ,性別 = " + Me.性別.SelectedValue
Query += " ,更新日 = Now"
If (Me.給与.InnerText).Trim() = "" Then
Query += " ,給与 = NULL"
Else
Query += " ,給与 = " + Me.給与.InnerText
End If
If (Me.手当.InnerText).Trim() = "" Then
Query += " ,手当 = NULL"
Else
Query += " ,手当 = " + Me.手当.InnerText
End If
If (Me.管理者.InnerText).Trim() = "" Then
Query += " ,管理者 = NULL"
Else
Query += " ,管理者 = '" + Me.管理者.InnerText + "'"
End If
If (Me.生年月日.InnerText).Trim() = "" Then
Query += " ,生年月日 = NULL"
Else
Query += " ,生年月日 = '" + Me.生年月日.InnerText + "'"
End If
Query += " where 社員コード = '" + Me.社員コード.InnerText + "'"
If -2 = db.Execute(Query) Then
db.Close()
MessageBox.Show("データベースの更新に失敗しました ", _
"エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
End If
End If
@C:green(' DB 接続解除)
db.Close()
@C:green(' キャンセル処理と同じ事をするので、再利用)
キャンセル_Click(Nothing, Nothing)
@END
|