我的查询面临这个问题。我希望你能帮助我解决它。
MD = "UPDATE librarysystem.audit set timeout = '" & Today + "" + TimeOfDay & "' AND status='0' WHERE username = '" & AccountId & "'AND status = '1'"
cmd = New MySqlCommand(MD, con)
cmd.ExecuteNonQuery()
这是代码:
connect()
Dim result As Integer = MessageBox.Show("Are You Sure You Want To LOGOUT?", "Are You?", MessageBoxButtons.YesNo)
If result = DialogResult.No Then
Me.Show()
ElseIf result = DialogResult.Yes Then
connect()
Dim time As DateTime
time = Date.Today
Dim a As Integer = 0
MD = "UPDATE librarysystem.audit set timeout = '" & Today + "" + TimeOfDay & "' AND status='0' WHERE username = '" & AccountId & "'AND status = '1'"
cmd = New MySqlCommand(MD, con)
cmd.ExecuteNonQuery()
AccountSettings.Hide()
BorrowedBooks.Hide()
LogHistory.Hide()
Login.Hide()
ReturnedBooks.Hide()
SearchBooks.Hide()
End If
End Sub
提前谢谢^^
答案 0 :(得分:0)
SQL的一个深层麻烦就是你通常会在另一种语言中嵌入一种语言。这使得很难清楚地阅读两种语言的内容。这是从你的vb中提取的SQL。
UPDATE librarysystem.audit
set timeout = '" & Today + "" + TimeOfDay & "'
AND status='0'
WHERE username = '" & AccountId & "'AND status = '1'"
这里有一些取代的样本值
UPDATE librarysystem.audit
set timeout = '2016-11-26 13:14:15'
AND status='0'
WHERE username = 'SomeUserName'AND status = '1'
您应该能够直接在dbms上执行该语句并使其正常运行。但是,仔细看看。你看到了什么?
我看到AND
要更新的列列表中应该有,
。 AND
仅适用于WHERE
和ON
条款,而不适用于列列表。
我在序列'SomeUserName'AND
中看到SQL中缺少空格。
我还发现vb程序为timeout
创建值的方式存在一些潜在的混淆。目前还不清楚您的vb TimeOfDay
变量是以24小时格式(13:14:15
)还是以上午/小时格式(01:14:15 PM
)呈现。
最后,我看到了一个非常常见的错误。 SQL语句是jammed onto one line,好像它是由精神病APL程序员在20世纪80年代编写的。这使得您的语言语言程序几乎无法阅读。