首页 > 编程 > .NET > 正文

ASP.NET2.0中对GridView删除操作时"未能找到带参数的非泛型方法"的解决方案

2024-07-10 13:04:27
字体:
来源:转载
供稿:网友

  在asp.net中对objectdatasource自动配置数据源的[删除]操作的时候,会生成两个字段一个是

oldvaluesparameterformatstring="original_{0}"

  另外一个是

<deleteparameters>
   <asp:parameter name="original_xml_id" type="int32" />
</deleteparameters>

  这里面oldvaluesparameterformatstring是根据你设定的sql语句中的参数确定的,而parameter name却是根据你的业务罗基层中删除函数的第一个参数确定的。
比如,业务逻辑层中你的删除组件是这样定义的,函数中的第一个参数就是objectdatasource生成的parameter name

    [system.componentmodel.dataobjectmethodattribute(system.componentmodel.dataobjectmethodtype.delete, true)]
    public bool delxml(int original_xml_id)
    {
        int rowsaffected = adapter.delete(original_xml_id);

        return rowsaffected == 1;
    }

  这里要注意的是你bll中del函数中的括弧中的参数名称和sql中的参数名称如果不一样,则会出现“未能找到带参数的非泛型方法”得奇怪错误。不知道算不算是asp.net的bug不过确实很讨厌。就连微软官方的教程(见www.asp.net)中都没有解决这个bug。

  我在互联网上搜索这个问题的解决方案,没有找到说得比较详细的。幻想曲也发现了类似的这个问题,并提到出了他的解决办法。

中国最大的web开发资源网站及技术社区,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表