错误消息:UPDATE语句中的语法错误

时间:2015-05-04 08:20:28

标签: vb.net

我不知道为什么当我点击更新按钮时,我收到错误

  

UPDATE语句中的语法错误

我不知道我的代码中出了什么问题

这是我的代码:

TempData["ImportError"] = "Some error string";
return RedirectToAction("Index");

3 个答案:

答案 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

将所有列名放在[]中,查询将被错误地解释,因为一旦遇到空格,它可能会忽略查询的其余部分

您已正确完成了姓氏,但肯定会忽略其间有空格的其他列名