Я получаю сообщение об ошибке
Процедура или функция Proc_PIP_Employee имеет слишком много аргументов
при попытке вызвать процедуру Proc_PIP_Employee
из кода C#. Количество проверенных параметров одинаковое. Такие же типы данных. Даже после этого возникает та же ошибка.
C# код:
public int Add_Record(Employee emp)
{
try
{
if (con.State != ConnectionState.Open)
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
SqlParameter RETURN_VALUE_OUTPUT = new SqlParameter();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "dbo.Proc_PIP_Employee";
cmd.Parameters.Add("@Flag", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@Empid", SqlDbType.Int).Value = 0;
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = emp.Name ;
cmd.Parameters.Add("@Designation", SqlDbType.VarChar).Value = emp.Designation;
cmd.Parameters.Add("@Department", SqlDbType.VarChar).Value = emp.Department;
cmd.Parameters.Add("@DateofJoin", SqlDbType.DateTime).Value = emp.Dateofjoin;
cmd.Parameters.Add("@Phone", SqlDbType.VarChar).Value = emp.Phone;
cmd.Parameters.Add("@Isactive", SqlDbType.Int).Value = emp.IsActive;
cmd.Parameters.Add("@LoginUser", SqlDbType.NVarChar).Value = "admin";
RETURN_VALUE_OUTPUT = cmd.Parameters.Add("@ReturnId",SqlDbType.Int);
RETURN_VALUE_OUTPUT.Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
ReturnID = Convert.ToInt32(RETURN_VALUE_OUTPUT.Value.ToString());
}
}
catch (SqlException ex)
{
}
return ReturnID;
}
Хранимая процедура:
ALTER PROCEDURE [dbo].[Proc_PIP_Employee]
@Flag int,
@Empid int,
@Name varchar(500),
@Designation varchar(200),
@Department varchar(200),
@DateofJoin datetime,
@Phone varchar(3000),
@Isactive int,
@LoginUser nvarchar(500)
AS
BEGIN
SET NOCOUNT ON ;
DECLARE @errorMessage VarChar(8000),
@errorSeverity Int,
@errorState Int,
@ReturnId Int,
@AlCode varchar(50),
@AlDesc varchar(1000),
@AlOp varchar(50),
@AlStatus varchar(50)
BEGIN TRY
BEGIN TRANSACTION
IF (@Flag = 1)
BEGIN
IF EXISTS (SELECT 1 FROM dbo.PIP_Employee
GROUP BY Name, Phone