在asp.net中對(duì)objectdatasource自動(dòng)配置數(shù)據(jù)源的[刪除]操作的時(shí)候,會(huì)生成兩個(gè)字段一個(gè)是
oldvaluesparameterformatstring="original_{0}"
另外一個(gè)是
<deleteparameters>
   <asp:parameter name="original_xml_id" type="int32" />
</deleteparameters>
  這里面oldvaluesparameterformatstring是根據(jù)你設(shè)定的sql語(yǔ)句中的參數(shù)確定的,而parameter name卻是根據(jù)你的業(yè)務(wù)羅基層中刪除函數(shù)的第一個(gè)參數(shù)確定的。
比如,業(yè)務(wù)邏輯層中你的刪除組件是這樣定義的,函數(shù)中的第一個(gè)參數(shù)就是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函數(shù)中的括弧中的參數(shù)名稱和sql中的參數(shù)名稱如果不一樣,則會(huì)出現(xiàn)“未能找到帶參數(shù)的非泛型方法”得奇怪錯(cuò)誤。不知道算不算是asp.net的bug不過(guò)確實(shí)很討厭。就連微軟官方的教程(見(jiàn)www.asp.net)中都沒(méi)有解決這個(gè)bug。
我在互聯(lián)網(wǎng)上搜索這個(gè)問(wèn)題的解決方案,沒(méi)有找到說(shuō)得比較詳細(xì)的。幻想曲也發(fā)現(xiàn)了類似的這個(gè)問(wèn)題,并提到出了他的解決辦法。
中國(guó)最大的web開(kāi)發(fā)資源網(wǎng)站及技術(shù)社區(qū),新聞熱點(diǎn)
疑難解答
圖片精選