注册 登录
编程论坛 ASP.NET技术论坛

求助!在GridView 里删除数据库中的一行出错

Issac_abc 发布于 2010-10-22 10:37, 1570 次点击
“/WEBUI”应用程序中的服务器错误。
ObjectDataSource“ObjectDataSource1”未能找到接受“Model.Client”类型的参数的非泛型方法“DeleteClient”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: ObjectDataSource“ObjectDataSource1”未能找到接受“Model.Client”类型的参数的非泛型方法“DeleteClient”。
源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

我也绑定了删除的方法还是报错。
5 回复
#2
筱晓绾2010-10-22 10:51
删除的时候 是根据什么删的?ID吗?是选定一行后,获得选定行的索引,将其作参数传入删除方法里面吧?查看一下Model层中的对象是否与数据库对象一致。当然还要看你的数据源绑定方法返回的是DataTable还是泛型,这是最重要的!不知道你解决没有哦!
#3
Issac_abc2010-10-22 11:34
没有啊!
我是直接绑定的数据原 是根据id 删除的。
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataKeyNames="CId" DataSourceID="ObjectDataSource1" CellPadding="4"
    ForeColor="#333333" GridLines="None" Width="100%">
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#EFF3FB" />
        <Columns>
           <asp:BoundField DataField="CId" HeaderText="序号" SortExpression="CId" />
            <asp:BoundField DataField="Ccode" HeaderText="编号" SortExpression="Ccode" />
            <asp:BoundField DataField="Cname" HeaderText="名称" SortExpression="Cname" />
            <asp:BoundField DataField="Caddress" HeaderText="地区" SortExpression="Caddress" />
              <asp:TemplateField HeaderText="客户经理">
                  <EditItemTemplate>
                      <asp:TextBox ID="TextBox4" runat="server" Height="25px" Width="98px"></asp:TextBox>
                  </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("LinkManInfo.lname") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="客户等级">
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("Ustateid.name") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Ustateid.name") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
        </Columns>
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
            DataObjectTypeName="Model.Client" DeleteMethod="DeleteClient"
            SelectMethod="GetAllClient" TypeName="BLL.ClientManger"
            UpdateMethod="UpdateClient">
            <DeleteParameters>
                <asp:Parameter Name="cid" Type="Int32" />
            </DeleteParameters>
        </asp:ObjectDataSource>

#4
Issac_abc2010-10-22 12:05
谢谢你!解决了
#5
筱晓绾2010-10-22 13:10
呵呵,不用谢!
#6
taotaojyc2010-10-22 15:04
强烈建议不要用太多的数据绑定控件,繁琐!没灵活性
1