Ошибка методов вставки и обновления ObjectDataSource

Я разрабатываю проект asp.net 3.5.

Когда я хочу вставить с помощью DetailsView, произошла эта ошибка:

Ошибка: ObjectDataSource «ObjectDataSource2» не смог найти неуниверсальный метод «AddCity» с параметрами: CITY_NAME.

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="GetCityByID" UpdateMethod="UpdateCity" InsertMethod="AddCity" TypeName="NOP_CRM.Lib.nop_cities" OldValuesParameterFormatString="original_{0}">
    <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="cityid" PropertyName="SelectedValue" Type="Int32" DefaultValue="1" />
    </SelectParameters>
    <UpdateParameters>                              
        <asp:Parameter Name="CITY_NAME" Type="String" />
    </UpdateParameters>
    <InsertParameters>
        <asp:Parameter Name="CITY_NAME" Type="String" />
    </InsertParameters>                                
</asp:ObjectDataSource>                    

...

public int AddCity(string cityname)
{
    CITY_NAME = cityname;
    Insert();
    return _CITY_ID;            
}        

person Mehmet    schedule 25.05.2010    source источник
comment
Я нашел такое решение: я изменил название города на CITY_NAME. Но это не должно быть похоже на это сопоставление между параметрами метода и параметрами источника данных объекта. Я думаю, что это ошибка VS 2008!   -  person Mehmet    schedule 25.05.2010


Ответы (2)


Обновите разметку ObjectDataSource, как показано ниже, и она должна работать. Вы указали неправильное имя параметра в теге «Вставить параметры».

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="GetCityByID" UpdateMethod="UpdateCity" InsertMethod="AddCity" TypeName="NOP_CRM.Lib.nop_cities" OldValuesParameterFormatString="original_{0}"> 
    <SelectParameters> 
        <asp:ControlParameter ControlID="GridView1" Name="cityid" PropertyName="SelectedValue" Type="Int32" DefaultValue="1" /> 
    </SelectParameters> 
    <UpdateParameters>                               
        <asp:Parameter Name="CITY_NAME" Type="String" /> 
    </UpdateParameters> 
    <InsertParameters> 
        <asp:Parameter Name="cityname" Type="String" /> 
    </InsertParameters>                                 
</asp:ObjectDataSource>   
person this. __curious_geek    schedule 25.05.2010

Вы пытались изменить Name="CITY_NAME" на Name="cityname" при объявлении источника данных объекта, чтобы он соответствовал подписи в вашем методе?

person Geir-Tore Lindsve    schedule 25.05.2010