vb.net - 如何在具有 MS 访问权限的 vb.net 中修复我的程序的更新查询
问题描述
首先这是我的代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
'Variables
Dim PatientNo As Integer = CInt(ID_TextBox.Text)
Dim updatedDate As DateTime = DateTimePicker1.Value
dbcon.Open()
'If Selected "Cleared"
If ComboBox1.SelectedIndex = 0 Then
query = "UPDATE Swab SET isActive = 'FALSE', NextSwab = 'NULL' WHERE PatientNo = '" & PatientNo & "'"
Dim cmd As OleDbCommand = New OleDbCommand(query, dbcon)
Dim dbada As New OleDbDataAdapter(cmd)
cmd.ExecuteNonQuery()
'If Selected "Positive"
ElseIf ComboBox1.SelectedIndex = 1 Then
updatedDate = updatedDate.AddDays(7)
query = "UPDATE Swab SET DateOfSpecimenCollection = '" & DateTimePicker1.Value & "', NextSwab = '" & updatedDate & "' WHERE PatientNo = '" & PatientNo & "'"
Dim cmd As OleDbCommand = New OleDbCommand(query, dbcon)
Dim dbada As New OleDbDataAdapter(cmd)
cmd.ExecuteNonQuery()
End If
dbcon.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
“拭子”表
|PatientNo|FirstName|isActive|DateOfSpecimenCollection| NextSwab |
1 Aldrin TRUE 15/07/20 22/07/20
2 Joshua FALSE 15/07/20 NULL
3 James TRUE 15/07/20 22/07/20
我的程序
我想做的是,当活动患者是时Cleared
,它会将他的状态从Swab
数据库更新为Swab.isActive = 'FALSE'
和他的Swab.NextSwab = 'NULL'
,但是如果活动患者是,Positive
那么它将他的状态从Swab
数据库更新为Swab.DateOfSpecimenCollection = DateAndTimePicker1.Value
,Swab.NextSwab = DateAndTimePicker1.Value + 7days
。
例如Aldrin
,存在于 2020 年 6 月 30 日创建的记录中。如果他以患者状态为阳性进入系统,那么他将isActive = TRUE
在系统中保留他的,他的DateOfSpecimenCollection = DateAndTimePicker1.Value
并将NextSwab = DateAndTimePicker1.Value + 7Days
被更新。但是,如果他被清除,那么他的isActive
意志是错误的,他NextSwab
将什么也不显示或NULL
。
(这是一个测试程序,这就是上表简短的原因)。
解决方案
假定 isActive 是一个是/否字段。不要在撇号之间加上 True 或 False。True 和 False 是表示 -1 和 0 的常量。在 SQL 中可以使用 0 或 -1 代替。如果您真的希望字段为空,也不要将 Null 放在撇号之间,否则会保存单词“Null”。仅当字段为文本类型时才使用撇号分隔符。
query = "UPDATE Swab SET isActive = FALSE, NextSwab = NULL WHERE PatientNo = '" & PatientNo & "'"
推荐阅读
- domain-driven-design - 添加跨两个聚合的域服务的解决方案中的哪个项目?
- c++ - I/O 中打开(文件)的行为
- javascript - 如何将对象属性放入变量中?
- c# - 使用 ASP.Net Core 进行数据注释本地化
- html - 直接在视图中从 Laravel 的元属性中删除 HTML 标签
- javascript - 自定义 Babel 插件 - 将 stringLiteral 值更改为实际的 Javascript 代码
- javascript - scrollIntoView 没有滚动到请求带有提交按钮 onClick
- nginx - 在 Engintron 问题上反向代理到端口 8069,而它适用于标准 NGINX 设置
- node.js - 通过Nodejs中的查询字符串获取用户
- matlab - 如何在matlab向量上制作多个if?