首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ms Access中的VB.NET:Updating记录

Ms Access中的VB.NET:Updating记录
EN

Stack Overflow用户
提问于 2016-03-11 14:06:07
回答 1查看 733关注 0票数 0

我正在创建一个员工时间表,在其中,他们必须通过按压“超时”和“超时”按钮来插入他们的时间表。对于timein,我在数据库中为那个人创建一个新记录,而对于timeout,我使用更新命令来更新该现有记录。这是我的代码:

代码语言:javascript
复制
Dim cb As New OleDb.OleDbCommandBuilder(ssda)
    cb.QuotePrefix = "["
    cb.QuoteSuffix = "]"

    con.ConnectionString = dbProvider & dbSource
    con.Open()
    Dim str As String
    str = "UPDATE emp_timing SET emp_timing.emp_timeout = '" & OnlyTime & "' WHERE (((emp_timing.emp_code)='" & TextBox1.Text & "') AND ((emp_timing.day)=" & Now.ToString("MM/dd/yyyy") & "))"

    Dim cmd As OleDbCommand = New OleDbCommand(str, con)


    Try
        cmd.ExecuteNonQuery()
        cmd.Dispose()
        con.Close()
        MsgBox("Data added")

        TextBox1.Clear()
        TextBox2.Clear()
        TextBox1.Focus()
        ComboBox1.SelectedIndex = -1
    Catch ex As Exception
        MsgBox(ex.Message)

    End Try

我的代码运行良好,但问题是它没有更新数据库中的记录。

Access中字段的数据类型: emp_code = Number,emp_timeout = Text,day = Date/Time。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 14:15:29

与往常一样,这是因为您的代码没有使用参数集合将值传递给数据库引擎。在遇到转换问题之前,这一点是无法真正理解的,就像日期一样。

代码语言:javascript
复制
str = "UPDATE emp_timing SET emp_timeout = @p1 " & _
      "WHERE emp_code = @p2 AND day = @p3"


Using con = new OleDbConnection( dbProvider & dbSource)
Using cmd = New OleDbCommand(str, con)

    con.Open()
    cmd.Parameters.Add("@p1", OleDbType.VarWChar).Value = OnlyTime
    cmd.Parameters.Add("@p2", OleDbType.Integer).Value = Convert.ToInt32(TextBox1.Text)
    cmd.Parameters.Add("@p3", OleDbType.Date).Value = new DateTime(Now.Year, Now.Month, Now.Day)
    Try
        Dim rowsAdded = cmd.ExecuteNonQuery()
        if rowsAdded > 0 Then
            MsgBox("Data added")
            TextBox1.Clear()
            TextBox2.Clear()
            TextBox1.Focus()
            ComboBox1.SelectedIndex = -1
        End If
    Catch ex As Exception
        MsgBox(ex.Message)

    End Try
End Using
End Using
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35942281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档