Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 359
  • Last Modified:

Procedure or function has too many arguments specified.

Hello,

I have an insert on my page that that runs this procedure:
It works if I run the procedure itself... otherwise when I clicked on the button I got this:

 Procedure or function sp_EvaluationVisitInsert has too many arguments specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Procedure or function sp_EvaluationVisitInsert has too many arguments specified.

Source Error:

Line 139:        myConnection.Open();
Line 140:        
Line 141:        cmd3.ExecuteNonQuery();
Line 142:        lblMessage3.Text = "You have Created a Evaluation Visit Record!";
Line 143:        myConnection.Close();


alter  PROCEDURE sp_EvaluationVisitInsert(
      @ParticipantID as int,
      @EvaluationID as int,
      @DateEvaluation as datetime) AS
      
BEGIN
/*
declare @ParticipantID as int,
      @EvaluationID as int,
      @DateEvaluation as datetime

set  @ParticipantID = '3'
set  @EvaluationID ='1'
set  @DateEvaluation ='05/12/2009'
*/

--if not exists (select ParticipantID from tbl_Participant where ParticipantID = @ParticipantID)


INSERT INTO tbl_EvaluationVisit(ParticipantID,
                    EvaluationID,
                    DateEvaluation
                    )
VALUES
      (@ParticipantID,
       @EvaluationID,
       @DateEvaluation
      )

UPDATE tbl_Participant SET  tbl_Participant.EvaluationVisitID = tbl_EvaluationVisit.EvaluationVisitID  
FROM tbl_Participant join tbl_EvaluationVisit ON tbl_Participant.ParticipantID = tbl_EvaluationVisit.ParticipantID


END


protected void EvaluationVisitAdd_Click(object sender, EventArgs e)
    {
 
        // create the insert command
 
        SqlCommand cmd3 = new SqlCommand("sp_EvaluationVisitInsert", myConnection);
        cmd3.CommandType = CommandType.StoredProcedure;
        cmd3.Parameters.Add(new SqlParameter("@ParticipantID", txtParticipantID.Text.Trim()));
       
        string strDateEvaluation = txtEvaluationDate.Text.Trim();
        cmd3.Parameters.Add(new SqlParameter("@DateEvaluation", strDateEvaluation));
 
        cmd3.Parameters.Add(new SqlParameter("@EvaluationID", ddlEvaluationType.SelectedValue));
        cmd3.Parameters.Add(new SqlParameter("@ParticipantLastName", txtLastName.Text.Trim()));
      
        myConnection.Open();
        
        cmd3.ExecuteNonQuery();
        lblMessage3.Text = "You have Created a Evaluation Visit Record!";
        myConnection.Close();
 
      
 
      //  Response.Redirect("participantEdit.aspx?r=" + ParticipantID);
 
        myConnection.Close();
 
 
 
    }

Open in new window

0
Romacali
Asked:
Romacali
1 Solution
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
your procedure has 3 parameters, but your c# code adds 4 parameters ...
I think the maths are obvious...
aka:
        cmd3.Parameters.Add(new SqlParameter("@ParticipantLastName", txtLastName.Text.Trim()));
0

Featured Post

Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now