mysql - 如何在vb.net中更新mysql数据库

标签 mysql vb.net

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Dim remarks As String
    Dim am_OUT As String = "11:30:01 AM"


    If LblTime.Text >= am_OUT Then
        remarks = "OVERTIME"
    Else
        remarks = "PRESENT"
    End If

    
    sql = "UPDATE attendance SET  am_out=@am_out, noon_remarks=@noon_remarks " & _
          "WHERE id_no= '" & Txtid.Text & "'AND date LIKE  '" & LblDate.Text & "'and am_out is null"

    Try
        With com
            .Connection = con
            .CommandText = "SELECT * FROM attendance WHERE id_no LIKE '" & Txtid.Text & "' AND date LIKE '" & LblDate.Text & "'AND am_out is NOT NULL"

        End With



        com.Parameters.Add(New MySqlParameter("@am_out", LblTime.Text))
        com.Parameters.Add(New MySqlParameter("@noon_remarks", remarks))

        com.ExecuteNonQuery()

        If remarks = "OVERTIME" Then
            MessageBox.Show("You have little overtime")
        ElseIf remarks = "PRESENT" Then
            MessageBox.Show("You Log out on time")
        End If




    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

我无法更新 mysql 中的数据库表 并且mysql数据库已经有amin和am备注

最佳答案

我认为对象com是你的MySqlCommand。如果是这种情况,则该行

 .CommandText = "SELECT * FROM attendance WHERE id_no LIKE '" & Txtid.Text & "' AND date LIKE '" & LblDate.Text & "'AND am_out is NOT NULL"

是一条 SELECT 语句,执行此命令时无法更新任何内容

也就是说,我建议为查询的每个部分正确实现参数化查询,当然,使用更新记录的正确语句

sql = "UPDATE attendance SET  am_out=@am_out, noon_remarks=@noon_remarks " & _
      "WHERE id_no= @id AND date LIKE  @dt and am_out is null"

Try
    With com
        .Connection = con
        .CommandText = sql
        .Parameters.AddWithValue("@am_out",LblTime.Text)
        .Parameters.AddWithValue("@noon_remarks",remarks)
        .Parameters.AddWithValue("@id",Txtid.Text )
        .Parameters.AddWithValue("@dt",Convert.ToDateTime(LblDate.Text ))
    End With
    com.ExecuteNonQuery()

关于mysql - 如何在vb.net中更新mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469167/

相关文章:

vb.net - 编码返回 Double() 以在 VBA 中使用的 .Net 函数

mysql - 在 MySQL 数据库中使用斜杠

php - 书签脚本?

mysql - 插入具有主键重复项的语句

c# - 有没有办法轻松屏蔽输入框对象

vb.net - SQLite 数据库文件放在网络文件夹中时无法打开

vb.net - 遍历 VB.Net 中 App.Config 文件中的连接字符串

mysql - 第三个嵌套的 Mysql Select 查询导致巨大的性能问题

php - 将值设置为 NULL 而不是 'NULL'

sql - VB.NET 中的 SUMIF SQL VIA OLEDB