Dim strCn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("database/mdb1.aspx")
      Dim strDel As String 
  Dim cn As New OleDbConnection(strCn)
  cn.open()
  strDel="DELETE usermdb WHERE id='"& e.Item.Cells(0).Text &"'"
  'Response.Write(strDel)
  Dim cmd As New OleDbCommand(strDel,cn)
      cmd.ExecuteNonQuery()
      myDataGrid.DataBind()
     
 cmd.Dispose()
      cmd = Nothing
      cn.Close()
      cn.Dispose()
      cn = Nothing
  可以显示出记录,可是一删除就出问题,错误提示:语法错误 (操作符丢失) 在查询表达式 'usermdb WHERE id=''' 中。
有人知道那里错了吗?

解决方案 »

  1.   

    你是在那里实现的删除?
    datagrid中吗?
      

  2.   

    strDel="DELETE usermdb WHERE id='"& e.Item.Cells(0).Text &"'"把这句 改成 
    strDel="DELETE usermdb WHERE id="& e.Item.Cells(0).Text &""
    最好写成strDel="DELETE FROM usermdb WHERE id="& e.Item.Cells(0).Text &""
    还要注意  e.Item.Cells(0).Text 的数值类型 和你的数据库ID的类型是否匹配!
      

  3.   

    如果在datagrid中,则定义datagrid  的datakeyfield为id
    where id="datagrid.datakeys(e.item.itemindex)"
      

  4.   

    问题在这一句
    strDel="DELETE usermdb WHERE id='"& e.Item.Cells(0).Text &"'"首先,在`ACCESS数据库中,删除语句有点特殊,必须使用delete * from table 这种格式,而在ORACLE,SQLSERVER中,都支持楼主的这种删除语句
    其次,你的ID,一般应为自动编号的吧.在ACCESS中,数字型的字段,是不能用单引号的,用了就会出错.
    所以你上面的语句修改如下:
    strDel="DELETE * from usermdb WHERE id="& e.Item.Cells(0).Text &""
      

  5.   

    楼上分析的正确,所以在以后写代码的过程中一定要知道自己操作的是Access还是Sql Server之类的.接分了.