Friday, January 7, 2011

I came across this error when I was coding a file that updated a table using SqlDataSource with a Stored Procedure.

""Procedure or function "  .... "has too many arguments specified"

Googled for the keywords above and I found this suggestion to my problem from phynix at

Adding the code solved my problem totally! ^.^

Thank you phynix!

Add an event handle for your SqlDataSource's Updating event:
for example:
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
 protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e)
  DbParameterCollection CmdParams = e.Command.Parameters;
  ParameterCollection UpdParams = ((SqlDataSourceView)sender).UpdateParameters;
  Hashtable ht = new Hashtable();
  foreach (Parameter UpdParam in UpdParams)
      ht.Add(UpdParam.Name, true);
  for (int i = 0; i < CmdParams.Count; i++)
      if (!ht.Contains(CmdParams[i].ParameterName.Substring(1)))

No comments: