I have a gridview (points of interest)
DataKeyNames="ID"
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" ItemStyle-Width="100" />
<asp:BoundField DataField="DESCRIPTION" HeaderText="Description" SortExpression="DESCRIPTION" />
bound to an objectdatasource
<asp:ObjectDataSource ID="dataSource" runat="server"
DeleteMethod="Delete"
InsertMethod="Insert"
SelectMethod="Get"
TypeName="MyData.MyClass"
UpdateMethod="Update"
>
<SelectParameters>
<asp:Parameter Name="descrip" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:FormParameter Name="id" Type="Int32" />
<asp:FormParameter Name="descrip" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="descrip" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
This is the method being called to update my table
public void Update(int id, string descrip)
{
// create input parameter
SqlParameter[] inparms = new SqlParameter[2];
inparms[0] = new SqlParameter("@ID", SqlDbType.Int);
inparms[1] = new SqlParameter("@DESCRIPTION", SqlDbType.VarChar);
inparms[0].Value = id;
inparms[1].Value = descrip;
using (DAL data = new DAL())
{
data.ReturnNonQuery("up_NWCS_Admin_UpdateCommodity", inparms);
}
}
And this is the function takling to the database:
public int ReturnNonQuery(string sproc, SqlParameter[] p)
{
using (SqlConnection con = new SqlConnection(strConn))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandText = sproc;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(p);
con.Open();
int i = cmd.ExecuteNonQuery();
return i;
}
}
}
When i click update on my gridview i get the following error
ObjectDataSource 'dataSource' could not find a non-generic method 'Update' that has parameters: id, descrip, ID, DESCRIPTION.
Yes i tried adding OldValuesParameterFormatString="{0}" but it still fails with the same error. I looked everywhere now im turning to the experts.
ASKER