トップ回答者
ObjectDataSourceでUpdateMethodを実行すると非ジェネリック メソッドが見つからないというエラーが発生

質問
-
お世話になっております。
さとと申します。
質問させてください。
ObjectDataSourceのUpdateMethodを使用してデータの更新をしようとすると、下記エラーが発生します。
「ObjectDataSource 'ObjectDataSource1' では、パラメータ Num, YYMM, original_COUNTER, Genkaを含む非ジェネリック メソッド 'UpdateGenka' が見つかりませんでした。 」
コントロールパラメータで抽出条件を指定してSelectMethodを使って画面上に表示したレコードを、
UpdateMethodを使って上書きしようとすると、エラーが発生します。
なぜ、”UpdateGenka"がみつからないのでしょうか?
ヒントをご伝授願います。
<<<<--------------
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" AutoGenerateEditButton="True" DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="Num" HeaderText="番号"/>
<asp:BoundField DataField="Genka" HeaderText="原価"/>
<asp:BoundField DataField="YYMM" HeaderText="年月"/>
<asp:BoundField DataField="COUNTER" HeaderText="COUNTER"/>
</Columns>
</asp:GridView>
<aspbjectDataSource
OldValuesParameterFormatString="original_{0}" ID="ObjectDataSource1"
TypeName="Genka" SelectMethod="GetGenka" UpdateMethod="UpdateGenka" Runat="Server">
<selectparameters>
<asp:ControlParameter Name="Num" ControlID="iNum" PropertyName="Text" Type="String" DefaultValue="_"/>
</selectparameters>
<UpdateParameters>
<asparameter Name="Num" Type="String" />
<asparameter Name="YYMM" Type="String" />
<asparameter Name="original_COUNTER" Type="Int32" />
<asparameter Name="Genka" Type="String" />
</UpdateParameters>
</aspbjectDataSource>
-------------->>>>
以下は、クラスの内容です。
<<<<--------------
Imports system.data.sqlclient
Imports system.dataPublic Class Genka
Const conString As String = "Data Source=XXXX;Initial Catalog=YYYY;User ID=WWWW;PASSWORD=ZZZZ"Public Shared Function GetGenka(ByVal Num As String) As SqlDataReader
Dim con As New SqlConnection(conString)Dim selectString As String = "SELECT Num, Genka, YYMM, COUNTER FROM CostDATA where Num = @Num ORDER BY YYMM"
Dim cmd As New SqlCommand(selectString, con)
cmd.Parameters.AddWithValue("@Num", Num)
con.Open()Dim dtr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Return dtr
End Function
Public Shared Sub UpdateGenka(ByVal original_COUNTER As Integer, ByVal Genka As String)
Dim con As New SqlConnection(conString)Dim updateString As String = "UPDATE CostDATA SET Genka=@Genka WHERE COUNTER=@COUNTER"
Dim cmd As New SqlCommand(updateString, con)
cmd.Parameters.AddWithValue("@Genka", Genka)
cmd.Parameters.AddWithValue("@COUNTER", original_COUNTER)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End SubEnd Class
-------------->>>>