From the code what I can make out is -
The Parameter names inside <updateparameters> and <insertparameters> tags should be same as that of the Parameter Name which you are binding in the label text.
For Example -
You have a label
<asp:Label ID="ResourceValueLabel" runat="server" Text='<%# Bind("ResourceValue") %>' />
And the parameter inside the <updateparameters> and <insertparameters> tags for the same label is -
<asp:Parameter Name="ResourceValue" Type="String" />
So, from this it is clear that the parameter Name inside the "Bind()" method is same with the Name attribute value in Parameter tag, which is "ResourceValue".
So, assuming this logic you have some wrong value for some of the parameters.
They are-
1.
<asp:Label ID="LanguageLabel" runat="server" Text='<%# Bind("Language.LangID") %>' />
for which you have parameter tag as -
<asp:Parameter Name="langID" Type="Int32" />
which should be like -
<asp:Parameter Name="Language.LangID" Type="Int32" />
And
2.
<asp:Label ID="Languages_GroupsLabel" runat="server" Text='<%# Bind("Languages_Groups.LangGrpID") %>' />
for which you have parameter tag as -
<asp:Parameter Name="LangGrpID" Type="Int32" />
which should be like -
<asp:Parameter Name="Languages_Groups.LangGrpID" Type="Int32" />
So, you have to make sure all the Parameter Names match.
Hope this solution helps.
Please let me know this helped you or not.
Thanks...