我不知道为什么当我点击更新按钮时,我收到错误
UPDATE语句中的语法错误
我不知道我的代码中出了什么问题
这是我的代码:
TempData["ImportError"] = "Some error string";
return RedirectToAction("Index");
答案 0 :(得分:4)
Update语句中没有“From”,因此应该以...开头
Update [Edit$]
还有其他一些错误。如果ID是一个数字,那么它可能不需要绑定单引号,通过它们也不会阻止它......
Where ID = " & txtId.text & "
嵌入空格的列名称需要使用边界括号...
and [Given Name] = '" & txtGivenName.text & "'
最后,这句话对SQL注入很开放,有人可以通过在你的一个文本框中输入SQL来严重损坏你的表。请考虑使用参数。
您还应该考虑使用Microsoft.ACE.OLEDB.12.0,因为您现在使用的已经很老了。
如果要将Excel用作数据库,则扩展属性中可能应该有其他参数,特别是您需要HDR = Yes ...
Extended Properties=""Excel 8.0;HDR=Yes"""
这告诉OLEDB你的工作表的第一行包含列名,否则它将使用F1 ... Fn(我想但它可能是C1 ... Cn)
答案 1 :(得分:2)
除了代码的其他一些问题(例如,您几乎应该总是使用参数化查询),Update from [edit$] set...
是错误的。
只需使用Update [edit$] set...
。
答案 2 :(得分:1)
您的更新语法语法显然不正确:
请找到以下代码:
Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles Btnupdate.Click
Try
With cm
.Connection = cn
.CommandText = "Update [edit$] set [Family Name] = '" & TxtFamilyname.Text & "' where ID ='" & TxtId.Text & "' and [Given Name] = '" & TxtGivenname.Text & "' and Gender = '" & TxtGender.Text & "'and DOB = '" & TxtDob.Text & "'and [Exam Date]='" & TxtExamdate.Text & "'and [Exam Time]= '" & TxtExamtime.Text & "'and [Street Name] = '" & TxtStreet.Text & "'and [House Nr]= '" & TxtHouse.Text & "'and PLZ = '" & TxtPlz.Text & "'and CITY = '" & TxtCity.Text & "'"
.ExecuteNonQuery()
End With
FillDataGridView("select * from [edit$]")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, Text)
Return
End Try
MsgBox("Succesfully updated!", MsgBoxStyle.Information, Text)
End Sub
将所有列名放在[]中,查询将被错误地解释,因为一旦遇到空格,它可能会忽略查询的其余部分
您已正确完成了姓氏,但肯定会忽略其间有空格的其他列名