2010-05-25 87 views
2

我正在开发asp.net 3.5项目。ObjectDataSource插入和更新方法错误

当我想和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;    
}   
+0

我发现像这样的解决方案: 我改变了城市名至CITY_NAME。但它不能像方法参数和对象数据源参数之间的映射一样。 我认为这是VS 2008的一个bug! – Jack 2010-05-25 11:16:13

回答

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> 
1

你试图改变名称= “CITY_NAME” 到NAME = “城市名” 声明ObjectDataSource控件时,以便它在你的方法的签名相匹配?