ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: (3) 修正時の更新処理を作成する
名前: lightbox
処理選択
パスワード

件名 (3) 修正時の更新処理を作成する
名前 lightbox
コメント
[[場所 : 更新.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