html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

ASP.NET2.0中对GridView删除操作时“未能找到带参数的非泛型方法”的解决方案_.NET教程_编程技术

[ ] 已经帮助:人解决问题
asp.net|解决

  在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。

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

iUpHTML5中文学习网 - HTML5先行者学习网
iUpHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助