测试更新错误,显示下面错误信息:
並未將物件參考設定為物件的執行個體
行 52:     Dim tb01n As string = CType(e.Item.FindControl("sys04a01n"), TextBox).Text

页面代码如下:就只可以执行删除命令,而不能够更新~~~请大哥们指导一下!
Function CreateDataSet(sqlstr As String, FileName As String, TableName As String) As DataSet
Dim ConnString As string ="server=server1;uid=pm; pwd=1234567890;database=eup;"
    Dim objCmd As New sqlDataAdapter(sqlstr, ConnString)
    Dim DS As New DataSet()
    objCmd.Fill(DS, "sys04a")
    CreateDataSet = DS
  End function
  
  Sub BindList()
    Dim sqlstr As string = "Select * From sys04a"
    myDataList.DataSource = CreateDataSet(sqlstr,"eup.mdf", "sys04a")
    myDataList.DataBind()
  End Sub
 
  Sub Page_Load(sender As object, e As Eventargs)
    If Not IsPostBack Then BindList()
  End Sub  Sub DataList_EditCommand(sender As object, e As DataListCommandEventArgs)
    myDataList.EditItemIndex = e.Item.ItemIndex
    BindList()
  End SubSub DataList_DeleteCommand(sender As object, e As DataListCommandEventArgs)
    Dim sqlstr As string = "Delete From sys04a Where " & myDataList.DataKeyField & "=" & myDataList.DataKeys(e.Item.ItemIndex)
    ExecuteSQL(sqlstr)
    myDataList.EditItemIndex = -1
    BindList()
  End Sub  Sub DataList_UpdateCommand(sender As object, e As DataListCommandEventArgs)
    Dim tb01n As string = CType(e.Item.FindControl("sys04a01n"), TextBox).Text
    Dim tb02i As string = Ctype(e.Item.FindControl("sys04a02i"), TextBox).Text
    Dim tb03n As string= Ctype(e.Item.FindControl("sys04a03n"), TextBox).Text
    Dim sqlstr As string = "Update sys04a Set sys04a01n='" & tb01n & "',sys04a02i='" & tb02i & "',sys04a03n='" & tb03n & "' Where " & myDataList.DataKeyField & "=" & myDataList.DataKeys(e.Item.ItemIndex) & ""
    ExecuteSQL(sqlstr)
    myDataList.EditItemIndex = -1          
    BindList()
  End Sub<Asp:DataList Runat="Server" Id="myDataList" CellPadding="3" Width="700"
       HorizontalAlign="Center" OnEditCommand="DataList_EditCommand"
       OnUpdateCommand="DataList_UpdateCommand" OnDeleteCommand="DataList_DeleteCommand"
       OnCancelCommand="DataList_CancelCommand" DataKeyField="sys04a02i"
       ExtractTemplateRows="True" Border="1" BorderColor="Blue" GridLines="Horizontal">

解决方案 »

  1.   

    sys04a01n这些控件都不在Datalist中,当然取不出来了
      

  2.   

    终于找到原因啦~~~不是楼上说的那样子啦
    是:
    Dim tb01n As string = CType(e.Item.FindControl("sys04a01n"), TextBox).Text
    findcontrol()这句里面的“sys04a01n” 都改为<EditItemTemplate>里<Asp:TextBox  的Id字段不过都很谢谢楼上的看我的问题,还提出意见!!!十分感谢
      

  3.   

    DataList分页、增加、删除、修改实例 http://www.easewe.com/Article/ShowArticle.aspx?article=112