0
Protected Sub dgResult_ItemCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgResult.ItemCommand

If strErr = "" Then
Dim ddl As DropDownList = CType(e.Item.FindControl("ddlClassificationType"), DropDownList)

Dim defaultValue As Boolean = ddl.SelectedItem.Text.Contains("*")

Dim originalValue As String = String.Empty

If defaultValue = False Then

'update AppDetail

strErr = appDetailDBA.UpdateAppDetail(appCode, subCode, ddl.SelectedValue, Today.Date)

End If

   If strErr = "" Then

 lblError.Text = msgClass.successMsg(subCodeName, "1")

        Else

            lblError.Text = msgClass.ErrorMsg(subCodeName, "1")

        End If

        dgResult.DataSource = appDetailDBA.getDataClassification(empID, txtSearch.Text)

    dgResult.DataBind()

    End Sub



Function UpdateAppDetail(ByVal appCode As String, ByVal subCode As String, ByVal classType As String, ByVal classEffDte As String)


Dim strErr As String = ""
        Dim con As New SqlConnection(kiosk_loginConnStr)
        con.Open()

        Try
            Dim sqlCommand As SqlCommand = con.CreateCommand()
            Dim sql As String = "Update AppDetail SET ClassificationType = '" + classType + "', ClassificationEffDate = '" + classEffDte + "' WHERE AppCode = '" + appCode + "'" & _
                              " AND SubCode = '" + subCode + "'"

            sqlCommand.CommandText = sql
            sqlCommand.ExecuteNonQuery()
        Catch ex As Exception
            strErr = ex.Message
        Finally
            con.Close()
        End Try

        Return strErr
    End Function
4

2 に答える 2

1

どのタイプのデータベースを使用していますか?データベースに変更をコミットしますか?

[更新(以下の説明から)] VBは、明示的に指示しない限り、すべてのコマンドを自動的にコミットするように見えるので、それは問題ではありません。

[更新2]私の動作理論は、 ExecuteNonQuery()が機能しない場合のように、データベースが正しく構成されていないというものです。

別の可能性のある説明はこれである可能性があります: http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/dbbf8025-9f53-4862-8705-62a106fe2114

于 2012-05-04T04:17:00.563 に答える
0

私の提案は、sqlCommand.Commit()を実行してみることです。これにより、データベースに加えた変更を実際のデータベースに「隠しておく」必要があります。私の実際の「コマンド」はオフになっているかもしれませんが、アイデアはそこにあることに注意してください。sqlコマンドでコミットできる場合は、接続レベルでコミットしてみてください。

于 2012-05-04T04:22:21.573 に答える