if e.CommandName="update" then
            dim strid as string
            strid=DataList1.DataKeys(e.Item.ItemIndex)
            dim box as new textbox
            box = e.Item.FindControl("TextBox1")
            Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath(".") & "/db1.mdb")
            Dim objcomm as New OleDbcommand("update guestbook set reply='+box+' where id='+strid+'", objConn)
            objconn.open()
            objcomm.ExecuteNonQuery()
            datalist1.EditItemIndex=-1
            datalist1.databind()
            objconn.close()
          end if
            
我这么做完,点更新按钮后报错,,异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。源错误: 行 87:              objcomm.ExecuteNonQuery()        ‘错误在这句还有为什么要在这里定义一个新的textbox呢?以前我用Datagrid做同样更新功能时,直接写textbox1.text 就可以了,但是在这里却提示textbox1未声明。还有一个问题,,dim box as new textbox
            box = e.Item.FindControl("TextBox1")
这个是什么意思呢?怎么理解它呢?

解决方案 »

  1.   

    将           Dim objcomm as New OleDbcommand("update guestbook set reply='+box+' where id='+strid+'", objConn)
    改成            Dim objcomm as New OleDbcommand("update guestbook set reply='+box.text+' where id='+strid.toString()+'", objConn)
      

  2.   

    if e.CommandName="update" then
                dim strid as string
                strid=DataList1.DataKeys(e.Item.ItemIndex)
                dim box as new textbox
                box = e.Item.FindControl("TextBox1")
                Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath(".") & "/db1.mdb")
                Dim objcomm as New OleDbcommand("update guestbook set reply='"+box.Text+"' where id='"+strid+"'", objConn)
                objconn.open()
                objcomm.ExecuteNonQuery()
                datalist1.EditItemIndex=-1
                datalist1.databind()
                objconn.close()
              end if
      

  3.   

    box只是一个控件,不是值.
     Dim objcomm as New OleDbcommand("update guestbook set reply='+box.text+' where id='+strid.toString()+'", objConn)
      

  4.   

    Dim objcomm as New OleDbcommand("update guestbook set reply='+box+' where id='+strid+'", objConn)-----------》
     Dim objcomm as New OleDbcommand("update guestbook set reply='"+box.Text+"' where id='"+strid+"'", objConn)