从Gridview更新时出现ASP.NET错误

时间:2017-10-16 10:34:57

标签: sql asp.net vb.net gridview

有人可以帮助我解决我在过去几个小时里一直在努力解决的这个简单错误吗? 我正在燃烧笔记本电脑......

错误: [SqlException(0x80131904):关键字“Group”附近的语法不正确。]

代码:

  Protected Sub GridView1_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs)
    Dim ID As Label = TryCast(GridView1.Rows(e.RowIndex).FindControl("lbl_ID"), Label)
    Dim AID As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_AID"), TextBox)
    Dim ADesc As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_ADesc"), TextBox)
    Dim Status As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_Status"), TextBox)
    Dim ADate As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_ADate"), TextBox)
    Dim Category As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_Category"), TextBox)
    Dim Location As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_Location"), TextBox)
    Dim CCenter As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_CCenter"), TextBox)
    Dim Group As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_Group"), TextBox)
    Dim Life As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_Life"), TextBox)
    Dim BValue As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_BValue"), TextBox)
    Dim RRate As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_RRate"), TextBox)
    Dim RType As TextBox = TryCast(GridView1.Rows(e.RowIndex).FindControl("txt_RType"), TextBox)
    con = New SqlConnection(cs)
    con.Open()

    Dim sqlString As String = "UPDATE Asset_Registry SET Asset_ID=@AID,Asset_Description=@ADesc,Status=@Status,Acquisition_Date=@ADate,Category=@Category,Location=@Location,Cost_Center=@CCenter,Group=@Group,Life=@Life,Book_Value=@BValue,Rental_Rate=@RRate,Rental_Type=@RType WHERE ID=@ID"
    Dim cmd As New SqlCommand(sqlString, con)
    cmd.Parameters.AddWithValue("@AID", AID.Text)
    cmd.Parameters.AddWithValue("@ADesc", ADesc.Text)
    cmd.Parameters.AddWithValue("@Status", Status.Text)
    cmd.Parameters.AddWithValue("@ADate", ADate.Text)
    cmd.Parameters.AddWithValue("@Category", Category.Text)
    cmd.Parameters.AddWithValue("@Location", Location.Text)
    cmd.Parameters.AddWithValue("@CCenter", CCenter.Text)
    cmd.Parameters.AddWithValue("@Group", Group.Text)
    cmd.Parameters.AddWithValue("@Life", Life.Text)
    cmd.Parameters.AddWithValue("@BValue", BValue.Text)
    cmd.Parameters.AddWithValue("@RRate", RRate.Text)
    cmd.Parameters.AddWithValue("@RType", RType.Text)

    cmd.ExecuteNonQuery()
    con.Close()
    GridView1.EditIndex = -1
    ShowData()
End Sub

1 个答案:

答案 0 :(得分:1)

GROUP是SQL Server中的reserved word,使用[]转义它:

UPDATE Asset_Registry 
SET Asset_ID=@AID,
    Asset_Description=@ADesc,
    ...
    [Group]=@Group -- <-----
    ...
WHERE ID=@ID