更新记录失败

时间:2014-09-13 03:51:38

标签: vb.net

我无法更新记录。我不知道什么似乎是问题。点击更新后似乎没有出现错误。这是我的代码。

    conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Charles\Documents\Database1.accdb"
    Dim cmd As String
    cmd = "UPDATE Employee SET EmployeeName = @eName, SSS = @SSS, TIN = @TIN, ED = @ED, Salary = @Salary WHERE EmployeeName = @eName"
    Dim cmdUpdate As New OleDbCommand(cmd, conn)

    enableTxtBox()
    If btnEdit.Text = "Edit" Then
        btnEdit.Text = "Update"
    Else
        btnEdit.Text = "Edit"

        Try
            conn.Open()
            cmdUpdate.Parameters.AddWithValue("@eName", txtName.Text)
            cmdUpdate.Parameters.AddWithValue("@SSS", txtSSS.Text)
            cmdUpdate.Parameters.AddWithValue("@TIN", txtTIN.Text)
            cmdUpdate.Parameters.AddWithValue("@ED", dtpED)
            cmdUpdate.Parameters.AddWithValue("@Salary", txtSalary.Text)
            cmdUpdate.ExecuteNonQuery()

            fillListView()
            clearAll()
            disableTxtBox()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        conn.Close()
    End If

1 个答案:

答案 0 :(得分:0)

cmdUpdate.Parameters.AddWithValue("@ED", dtpED)

假设dtpEDDateTimePicker控件,您可能希望将该参数设置为dtpED.Value(即在控件中选择的日期),而不是dtpED控制自己:

cmdUpdate.Parameters.AddWithValue("@ED", dtpED.Value)
                                             '^^^^^^'

顺便说一句,我假设cmdUpdate.ExecuteNonQuery()语句实际到达并执行了。由于btnEdit.Text的条件检查,您的答案并不清楚。 (如果该按钮标记为编辑,则必须运行代码两次以获取命令执行代码,因为一旦进入Then子句,{{1}即使您更改了属于Else条件的btnEdit.Text,也会始终跳过}子句。)