0

Please help me... i am trying to update my database from VB.net. It shows error. My code is given below....

Try
            getConnect()

            Dim strSQL As String
            strSQL = " UPDATE DEPARTMENT SET [DEP_ID]=@DEP_ID,[DEPART]=@DEPART,    [DEP_DSCRPTN]=@DEP_DSCRPTN WHERE [DEP_ID] = @DEP_ID"
            Dim cmd As New SqlCommand(strSQL, Conn)
            cmd.Parameters.AddWithValue("@DEP_ID", CInt(Me.DEPID.Text))
            cmd.Parameters.AddWithValue("@DEPART", SqlDbType.VarChar).Value =     CMBDEPT.Text
            cmd.Parameters.AddWithValue("@DEP_DSCRPTN", SqlDbType.VarChar).Value =     TXTDESC.Text
            Conn.Open()
            cmd.ExecuteNonQuery()
            MsgBox("Update Complete!", MsgBoxStyle.Information, "Update")
        Catch ex As Exception
            MsgBox("ERROR: " + ex.Message, MsgBoxStyle.Information, "Update")
        Finally
            Conn.Close()
            BTNCLEAR.PerformClick()
        End Try

And the error is:

ERROR: Cannot update identity column 'DEP_ID'

4

2 に答える 2

2

から削除[DEP_ID]=@DEP_ID,SETます。とにかくによってすでに保証されている値に設定しようとしても意味がないWHEREため、明らかに冗長であり、IDENTITY列の更新は許可されていません。

UPDATE DEPARTMENT
SET    [DEPART] = @DEPART,
       [DEP_DSCRPTN] = @DEP_DSCRPTN
WHERE  [DEP_ID] = @DEP_ID 
于 2013-01-07T11:14:03.073 に答える
0

エラー メッセージは明確です。 Set DEP_ID = @DEP_ID の部分を削除してください。

Try
    getConnect()

    Dim strSQL As String
    strSQL = "UPDATE DEPARTMENT SET [DEPART]=@DEPART," + 
             "[DEP_DSCRPTN]=@DEP_DSCRPTN WHERE [DEP_ID] = @DEP_ID"
    Dim cmd As New SqlCommand(strSQL, Conn)
    cmd.Parameters.AddWithValue("@DEP_ID", CInt(Me.DEPID.Text))
    cmd.Parameters.AddWithValue("@DEPART", SqlDbType.VarChar).Value =     CMBDEPT.Text
    cmd.Parameters.AddWithValue("@DEP_DSCRPTN", SqlDbType.VarChar).Value =     TXTDESC.Text
    Conn.Open()
    cmd.ExecuteNonQuery()
    MsgBox("Update Complete!", MsgBoxStyle.Information, "Update")
Catch ex As Exception
    MsgBox("ERROR: " + ex.Message, MsgBoxStyle.Information, "Update")
Finally
    Conn.Close()
    BTNCLEAR.PerformClick()
End Try

ID 列を変更する必要がある場合は、データベース スキーマをよりよく分析する必要があると思います。

于 2013-01-07T11:15:50.900 に答える