c# - SqlDataSource InsertCommand Missing Required Parameters -


i keep getting oledbexception :"no value given 1 or more required parameters" - not specific.

i have had no luck finding solution problem online. have tried many different things not declaring parameters in form , creating them @ run time in code behind.

here ugly code:

<asp:sqldatasource  id="datasource" runat="server" connectionstring="<%$ connectionstrings:connectionstring %>" providername="<%$ connectionstrings:connectionstring.providername %>"      selectcommand="select [id], [test data] test_data, [more data] more_data [main]"      updatecommand="update [main] set [test data]=@testdata, [more data]=@moredata [id]=@id"      insertcommand="insert [main] ([id], [test data], [more data]) values (@insertid, @inserttestdata, @insertmoredata)"      deletecommand="" >     <updateparameters>         <asp:controlparameter name="testdata" controlid="updatetest" propertyname="text" />         <asp:controlparameter name="moredata" controlid="updatemore" propertyname="text" />         <asp:controlparameter name="inserttestdata" controlid="inserttest" propertyname="text" />         <asp:controlparameter name="insertid" controlid="insertidd" propertyname="selectedvalue" />         <asp:controlparameter name="insertmoredata" controlid="insertmore" propertyname="text" />         <asp:controlparameter name="id" controlid="dropdownlist2" propertyname="selectedvalue" />     </updateparameters> </asp:sqldatasource>      <asp:gridview id="gridview1" runat="server" allowsorting="true" datasourceid="datasource"></asp:gridview>     <br />     <asp:dropdownlist id="insertidd" datasourceid="datasource" datatextfield="id" runat="server" font-bold="false"></asp:dropdownlist>     <asp:textbox id="inserttest"  runat="server"></asp:textbox>     <asp:textbox id="insertmore" runat="server"></asp:textbox>     <asp:button id="button1" runat="server" text="insert" onclick="insert" />     <br />     <asp:dropdownlist id="dropdownlist2" runat="server" datasourceid="datasource" datatextfield="id" ontextchanged="populatedrop" autopostback="true"></asp:dropdownlist>     <asp:textbox id="updatetest"  runat="server"></asp:textbox>     <asp:textbox id="updatemore" runat="server"></asp:textbox>     <asp:button id="button2" runat="server" text="update" onclick="update" />     <br />     <asp:button id="button3" runat="server" text="delete" onclick="delete" />** 

and c# code behind:

namespace webapplication2 { public partial class webform1 : system.web.ui.page {     dataview dv = new dataview();     protected void page_load(object sender, eventargs e)     {         dv = (dataview)datasource.select(datasourceselectarguments.empty);         updatetest.text = dv[0]["test_data"].tostring();         updatemore.text = dv[0]["more_data"].tostring();     }      protected void insert(object sender, eventargs e)      {         datasource.insert();     }      protected void update(object sender, eventargs e)      {         datasource.update();         updatetest.text = "";         updatemore.text = "";     } 

select , update work without problem. no matter try cannot insert command happy. sure simple missing, appreciated, thanks!

this update:

    <updateparameters>     <asp:controlparameter name="testdata" controlid="updatetest" propertyname="text" />     <asp:controlparameter name="moredata" controlid="updatemore" propertyname="text" />     <asp:controlparameter name="id" controlid="dropdownlist2" propertyname="selectedvalue" /> </updateparameters> 

and insert

<insertparameters> <asp:controlparameter name="inserttestdata" controlid="inserttest" propertyname="text" />     <asp:controlparameter name="insertid" controlid="insertidd" propertyname="selectedvalue" />     <asp:controlparameter name="insertmoredata" controlid="insertmore" propertyname="text" /> </insertparameters> 

at end:

<asp:sqldatasource  id="datasource" runat="server" connectionstring="<%$ connectionstrings:connectionstring %>" providername="<%$ connectionstrings:connectionstring.providername %>"  selectcommand="select [id], [test data] test_data, [more data] more_data [main]"  updatecommand="update [main] set [test data]=@testdata, [more data]=@moredata [id]=@id"  insertcommand="insert [main] ([id], [test data], [more data]) values (@insertid, @inserttestdata, @insertmoredata)"  deletecommand="" > <updateparameters>     <asp:controlparameter name="testdata" controlid="updatetest" propertyname="text" />     <asp:controlparameter name="moredata" controlid="updatemore" propertyname="text" />     <asp:controlparameter name="id" controlid="dropdownlist2" propertyname="selectedvalue" /> </updateparameters> <insertparameters> <asp:controlparameter name="inserttestdata" controlid="inserttest" propertyname="text" />     <asp:controlparameter name="insertid" controlid="insertidd" propertyname="selectedvalue" />     <asp:controlparameter name="insertmoredata" controlid="insertmore" propertyname="text" /> </insertparameters> </asp:sqldatasource>