我用SQLCommandBuilder来更新DATAGRID数据,更新过程如下:
Sub Grid_Update(sender as Object,e as DataGridCommandEventArgs)
dim bd as New SQLCommandBuilder(da)
dim a1 as textbox
dim tb as New DataTable()
tb=ds.tables("user")
Dim dcKey() As DataColumn={ds.Tables("user").Columns("uid")}
tb.PrimaryKey=dcKey
Dim id As String=Grid1.DataKeys(Cstr(E.Item.ItemIndex))
Dim dr as DataRow=tb.rows.find(id)
         da.UpdateCommand = bd.GetUpdateCommand
a1=e.item.cells(0).controls(0)
dr("uid")=trim(a1.text)
da.Update(ds,"user")  //执行到这里就报错!
ds.clear
da.fill(ds,"user")
Grid1.EditItemIndex = -1
Grid1.DataBind
End Sub
错误提示如下:
在关键字 'user' 附近有语法错误。
请帮帮忙解决下,不胜感激!

解决方案 »

  1.   

    我那样让你改只是认为user是关键字.换一个.Public Sub DataGrid1_UpDate(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
            Dim updatecomm As New SqlCommand("update lanmus Set Lanmu=@lanmu where ID=" + e.Item.Cells(0).Text, conn)
            updatecomm.Parameters.Add("@lanmu", CType(e.Item.FindControl("LanmuTitle"), TextBox).Text.Trim.ToString())
            Try
                conn.Open()
                updatecomm.ExecuteNonQuery()
            Catch ex As Exception
                Throw ex
            Finally
                conn.Close()
            End Try
            DataGrid1.EditItemIndex = -1
            ShowLanmu()
        End Sub
    为什么不这样更新呢?
      

  2.   

    to : 
    renyu732(在学.net中...) 我不想用这样的更新,我想用SQLCommandBuilder自动生成SQL语句!
    好奇怪,我把USER 换成USER2居然还是提示一样的错误:在关键字 'user' 附近有语法错误。