我修改DataGrid中的记录后,数据库中对应的记录并未发生任何变化,大家帮我看看是怎么回事.是否在修改DataGrid中的记录后还需要增加其他什么语句(比如修改数据库记录后,要用DataAdapter.Update和DataSet.AcceptChanges),以下函数中的For循环修改DataGrid中的部分记录中的一列,修改后我想数据库中的对应记录跟着变
 Private Sub btnDeleteStep_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteStep.Click        '首先判断表中是否为空,若为空则不能执行删除操作
        If datagridTestStep.VisibleRowCount = 0 Then
            MsgBox("表中数据已空,无法进行删除操作!", MsgBoxStyle.Critical, "删除提示")
            Exit Sub
        End If        Dim stepNo As Integer = datagridTestStep.CurrentCell.RowNumber + 1        '表中数据不空,在删除前进行删除确认提示!
        If MsgBox("您确实要删除第" + stepNo.ToString + "步吗?", vbQuestion + vbOKCancel, "删除提示") = DialogResult.Cancel Then            '不删除
            Exit Sub
        Else
            Try
                Dim strSQL As String = "Delete From TestStep Where 步骤= " + stepNo.ToString()
                Dim cmd As New OleDbCommand(strSQL, myCon)
                If myCon.State = ConnectionState.Closed Then
                    myCon.Open()
                End If
                cmd.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox(ex.ToString)
            Finally
                myCon.Close()
            End Try            '修改表中的步骤字段和返回步骤数下拉框中的内容            Dim i As Integer
            For i = stepNo To datagridTestStep.VisibleRowCount - 1                '修改表中的步骤字段
                datagridTestStep.Item(i, 0) = (i - 1).ToString
                '修改返回步骤数下拉框中的内容
                cmbStepNo.Items(i + 1) = i.ToString
            Next            '在返回步骤数下拉框中移出被删除的步骤
            cmbStepNo.Items.RemoveAt(stepNo)            '显示更新后的数据
            DisplayTestStep()
        End If
    End Sub

解决方案 »

  1.   

    是要用DataAdapter.Update(...)的
      

  2.   

    但在这个函数中我并未用到DataAdapter对象啊,我是用的DataCommand.ExecuteNonQuery,我想在在DataGrid中进行修改后就立即反映到数据库中
    在datagridTestStep.Item(i, 0) = (i - 1).ToString后需要加其他什么语句才能使修改后就立即反映到数据库中?(不用DataAdapter对象的Update方法,因为我在这个函数中我根本未定义DataAdapter,DataGrid的填充是在其他函数中完成的)