я должен создать процедуру в SQLServer как,Как исправить номер ошибки: 8114 «Процедура или функция имеет слишком много аргументов, указанных» в приложении C# Windows
create procedure LeaveMasterProcdure(
@code nvarchar(20),
@type nvarchar(20),
@condition nvarchar(1000),
@leavedays nvarchar(50)
)
As
DECLARE @Max INT
, @id varchar(50)
IF NOT EXISTS(SELECT id FROM LeaveMaster)
BEGIN
SET @id = 'L001'
INSERT INTO dbo.LeaveMaster(id,code,type,conditions,No_ofleaves)
VALUES(@id,@code,@type,@condition,@leavedays)
END
ELSE
BEGIN
SELECT @Max = CONVERT(INT, SUBSTRING(CONVERT(NVARCHAR(10),id), 2, 10)) FROM LeaveMaster
SET @id = 'L' + RIGHT('00' + CONVERT(NVARCHAR(10), @Max + 1), 5)
INSERT INTO dbo.LeaveMaster(id,code,type,conditions,No_ofleaves)
VALUES(@id,@code,@type,@condition,@leavedays)
END
Также я ввожу значение, процедура вставки в SqlManagementStudio
Но когда я пытаюсь вставить процедуру программы я процедуры или функция имеет слишком много аргументов указаны исключения. Этот код:
SqlCommand AddLeave = con.CreateCommand();
SqlParameter id = new SqlParameter("@id", SqlDbType.VarChar);
SqlParameter code = new SqlParameter("@code", SqlDbType.VarChar);
SqlParameter type = new SqlParameter("@type", SqlDbType.VarChar);
SqlParameter conditions = new SqlParameter("@conditions", SqlDbType.VarChar);
SqlParameter No_ofleaves = new SqlParameter("@No_ofleaves", SqlDbType.VarChar);
AddLeave.Parameters.Add(id);
AddLeave.Parameters.Add(code);
AddLeave.Parameters.Add(type);
AddLeave.Parameters.Add(conditions);
AddLeave.Parameters.Add(No_ofleaves);
SqlCommand ccc = new SqlCommand("select type from LeaveMaster", con);
SqlDataReader r1 = ccc.ExecuteReader();
while (r1.Read())
{
s1 = r1["type"].ToString();
}
if (s1 == null)
id.Value = " ";
else if (s1 != null)
id.Value = s1.ToString();
r1.Close();
code.Value = textBox_Leave_Code.Text;
type.Value = textBox_Leave_Type.Text;
conditions.Value = textBox_Conditions.Text;
No_ofleaves.Value = textBox_total_leave.Text;
AddLeave.Connection = con;
AddLeave.CommandText = "LeaveMasterProcdure @id,@code,@type,@conditions,@No_ofleaves";
try
{
AddLeave.ExecuteNonQuery();
MessageBox.Show("added");
}
catch (Exception vv)
{
MessageBox.Show(vv.ToString());
}
Я не знаю, как это исправить. Пожалуйста, помогите мне ...
У вас есть 4 параметра в вашем предложении и 5 в вашем коде. И их следует назвать равными. – fubo
удалите эту строку 'SqlParameter id = new SqlParameter (" @ id ", SqlDbType.VarChar);' и переименуйте '@ No_ofleaves' в' @ leavedays' – wiretext
@tinka не работает с тем же исключением –