更新数据时出错了
如下程序,在提交更新数据时提示出错,请问,是什么原因,如何解决
<%@ Page Debug="true" %>
<%@Import Namespace=System.Data%>
<%@Import Namespace=System.Data.OLEDB%>
<!--#Include File="GetTable.aspx"-->
<Html>
<Form Runat="Server">
<ASP:DataGrid Id="dgA" AllowPaging="True" PageSize="5"
OnPageIndexChanged="dgA_PageChg" Runat="Server"
PagerStyle-Mode="NumericPages" BorderColor="#808080"
HeaderStyle-Font-Names="Courier New" HeaderStyle-BackColor="#D1DCEB"
HeaderStyle-HorizontalAlign="Center" AutoGenerateColumns="False"
OnEditCommand="dgA_ECmd" OnUpdateCommand="dgA_UCmd"
OnCancelCommand="dgA_CCmd" >
<Columns>
<ASP:TemplateColumn>
<HeaderTemplate>ID</HeaderTemplate>
<ItemTemplate><%#Container.DataItem("ID")%></ItemTemplate>
</ASP:TemplateColumn>
<ASP:TemplateColumn>
<HeaderTemplate>SmallClassID</HeaderTemplate>
<ItemTemplate><%#Container.DataItem("SmallClassID")%></ItemTemplate>
<EditItemTemplate>
<ASP:TextBox Id="txtSmallClassID" Text='<%#Container.DataItem("SmallClassID")%>' Runat="Server"/>
</EditItemTemplate>
</ASP:TemplateColumn>
<ASP:TemplateColumn>
<HeaderTemplate>BigClassName</HeaderTemplate>
<ItemTemplate><%#Container.DataItem("BigClassName")%></ItemTemplate>
<EditItemTemplate>
<ASP:TextBox Id="txtBigClassName" Text='<%#Container.DataItem("BigClassName")%>' Runat="Server"/>
</EditItemTemplate>
</ASP:TemplateColumn>
<ASP:TemplateColumn>
<HeaderTemplate>SmallClassName</HeaderTemplate>
<ItemTemplate><%#Container.DataItem("SmallClassName")%></ItemTemplate>
<EditItemTemplate>
<ASP:TextBox Id="txtSmallClassName" Text='<%#Container.DataItem("SmallClassName")%>' Runat="Server"/>
</EditItemTemplate>
</ASP:TemplateColumn>
<ASP:EditCommandColumn HeaderText="编辑" EditText="编辑" UpdateText="更新" CancelText="放弃"/>
</Columns>
</ASP:DataGrid>
</Form>
<Script Language="VB" Runat="Server">
Dim dtDataTable As DataTable
Sub Page_Load(Sender As Object, e As EventArgs)
If Page.IsPostBack=False Then
BindGrid()
End If
End Sub
Sub BindGrid() '数据系结程序
dtDataTable=GetTable("d:\Inetpub\wwwroot\nettest\news400xp.mdb", "SmallClass")
dgA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
Sub dgA_PageChg(Sender As Object, e As DataGridPageChangedEventArgs) ' 换页程序
BindGrid()
End Sub
Sub dgA_ECmd(Sender As Object, e As DataGridCommandEventArgs) '进入编辑模式
dgA.EditItemIndex=e.Item.ItemIndex
BindGrid()
End Sub
Sub dgA_UCmd(Sender As Object, e As DataGridCommandEventArgs) '数据更新程序
Dim shtR As Short=(dgA.CurrentPageIndex * dgA.PageSize) + e.Item.ItemIndex
Dim txtTemp As TextBox
'为了便利起见而将dtDataTable指向目标数据表
response.write(shtR & "<br>")
dtDataTable=GetTable("d:\Inetpub\wwwroot\nettest\news400xp.mdb", "SmallClass")
'txtTemp=e.Item.FindControl("txtID") '搜寻DataListItem 内的控件
'dtDataTable.Rows(shtR)("ID")=txtTemp.Text '将找到的控制之Text 属性更新回相对应的记录中
txtTemp=e.Item.FindControl("txtSmallClassID")
response.write(txtTemp.Text & "<br>")
dtDataTable.Rows(shtR)("SmallClassID")=CInt(txtTemp.Text)
txtTemp=e.Item.FindControl("txtBigClassName")
response.write(txtTemp.Text & "<br>")
dtDataTable.Rows(shtR)("BigClassName")=txtTemp.Text
txtTemp=e.Item.FindControl("txtSmallClassName")
response.write(txtTemp.Text & "<br>")
dtDataTable.Rows(shtR)("SmallClassName")=txtTemp.Text
response.write(dscA.UpdateCommand)
dscA.Update(dsDataSet,"SmallClass") '将所作的改变更新回数据源
dgA.EditItemIndex=-1
BindGrid()
End Sub
Sub dgA_CCmd(Sender As Object, e As DataGridCommandEventArgs)
dgA.EditItemIndex=-1
BindGrid()
End Sub
</SCRIPT>
</Html>
错误提示:
Server Error in '/' Application.
--------------------------------------------------------------------------------
Update requires a valid UpdateCommand when passed DataRow collection with modified rows.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Update requires a valid UpdateCommand when passed DataRow collection with modified rows.
Source Error:
Line 85: dtDataTable.Rows(shtR)("SmallClassName")=txtTemp.Text
Line 86: response.write(dscA.UpdateCommand)
Line 87: dscA.Update(dsDataSet,"SmallClass") '将所作的改变更新回数据源
Line 88: dgA.EditItemIndex=-1
Line 89: BindGrid()
Source File: D:\Inetpub\wwwroot\nettest\DataGrid_template.aspx Line: 87