c# - 如何在 UPDATE 命令的 WHERE 子句中使用三个条件更新单个记录?
问题描述
我使用 Visual Basic 2015 作为前端,使用 Access 数据库作为后端。我想在以下三个基础上更新表中的单个记录:
在哪里
Sap_No = TxtSap_No AND
MNT (i. e. Month) = CmbMonth.Text (i. e. ComboBox Text) AND
YR (i.e. Year) = CmbYear.Text (i. e. ComboBox Text)
我的更新命令如下:
尝试
LvMasterCmd.CommandText = "UPDATE LeaveMaster SET Sap_No= @Sap_No, From_Date= @From_Date, To_Date= @To_Date, LeaveType= @LeaveType, Days= @Days, LeaveStatus= @LeaveStatus , MNT = @MNT , YR = @YR WHERE Sap_No= " & CInt(TxtSapID.Text) & " AND MNT= " & MN & " ;"
LvMasterCmd.Parameters.AddWithValue("@Sap_No", TxtSapID.Text)
LvMasterCmd.Parameters.AddWithValue("@From_Date", DtpFrom.Value)
LvMasterCmd.Parameters.AddWithValue("@To_Date", DtpTo.Value)
LvMasterCmd.Parameters.AddWithValue("@LeaveType", LT)
LvMasterCmd.Parameters.AddWithValue("@Days", LblDays.Text)
LvMasterCmd.Parameters.AddWithValue("@MNT", MN)
LvMasterCmd.Parameters.AddWithValue("@YR", YRR)
LvMasterCmd.Parameters.AddWithValue("@LeaveStatus", "Y")
LvMasterReader.Close()
LvMasterCmd.ExecuteNonQuery()
LvMasterCmd.Parameters.Clear()
Exit Sub
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
但是是节目
一个或多个标准表达式没有价值
这段代码有什么问题以及如何纠正它?请帮忙。
解决方案
如果条件中的任何值无效,您将无法更新任何列...因此您应该确保这些值存在于数据库中,然后尝试这种格式
Try
LvMasterCmd.Parameters.AddWithValue("@Sap_No", TxtSapID.Text)
LvMasterCmd.Parameters.AddWithValue("@From_Date", DtpFrom.Value)
LvMasterCmd.Parameters.AddWithValue("@To_Date", DtpTo.Value)
LvMasterCmd.Parameters.AddWithValue("@LeaveType", LT)
LvMasterCmd.Parameters.AddWithValue("@Days", LblDays.Text)
LvMasterCmd.Parameters.AddWithValue("@MNT", MN)
LvMasterCmd.Parameters.AddWithValue("@YR", YRR)
LvMasterCmd.Parameters.AddWithValue("@LeaveStatus", "Y")
LvMasterCmd.CommandText = "UPDATE LeaveMaster SET Sap_No= @Sap_No, From_Date= @From_Date, To_Date= @To_Date, LeaveType= @LeaveType, Days= @Days, LeaveStatus= @LeaveStatus , MNT = @MNT , YR = @YR WHERE Sap_No = " & CInt(TxtSapID.Text) & " AND MNT = '" & MN & "'"
LvMasterReader.Close()
LvMasterCmd.ExecuteNonQuery()
LvMasterCmd.Parameters.Clear()
Exit Sub
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
推荐阅读
- python - 使用 Python 实现多线程和多处理
- javascript - 读取海关标头 HTTP
- c++11 - 为什么我尝试测试类中的成员变量(字符串)是否为空时会出现错误?
- python - 使用 str.replace 在循环中运行 XOR 加密不会更改某些字符
- javascript - 将对象从一个窗口传递到另一个窗口
- c++ - GCC_VERSION gcc-6.2.0 出现错误:enable_if 不是类模板,但相同的代码正在使用 gcc-4.3.0
- javascript - 如果我在一个数组中添加 2 个数字并推送到一个新数组,我如何从第二个数组中的值中找到这 2 个数字
- opencart - 如果 en-gb.php 语言文件仅在管理员中不起作用,如何修复
- python - 使用 Geoalchemy2 在 PostGis 中存储 WKBElement 会导致经度不正确
- python - 如何创建一个包含对手牌的黑白棋功能?