«В процедуре или функции указано слишком много аргументов», но это не так
Спасибо заранее за вашу помощь. Это высоко ценится.
После двух долгих часов поиска переполнения стека и других результатов Google по той причине, что я получаю «У процедуры или функции слишком много аргументов», я не нашел никакой полезной помощи. Причина этого в том, что везде я читал, что у меня либо слишком много аргументов, либо неверные имена для моих аргументов, либо неправильные типы. Ничто из этого не относится к моему делу. Вот мой код:
CREATE PROCEDURE dbo.sproc_UpdateInfo
(
@Name nvarchar(40),
@UserId varchar(50),
@Password varchar(50),
@Address nvarchar(120)
)
AS
Update tbl_Users SET Name=@Name, Password=@Password, Address=@Address WHERE UserId=@UserId
RETURN
И вот сторона вещей C #:
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = "sproc_UpdateInfo";
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.Add("@Name", SqlDbType.NVarChar, 40).Value = name;
sqlCmd.Parameters.Add("@UserId", SqlDbType.VarChar, 50).Value = userID;
sqlCmd.Parameters.Add("@Password", SqlDbType.VarChar, 50).Value = password;
sqlCmd.Parameters.Add("@Address", SqlDbType.NVarChar, 120).Value = address;
SqlConnection sqlConn = new SqlConnection(connectionString);
sqlCmd.Connection = sqlConn;
try
{
sqlCmd.Connection.Open();
int rowaffected = sqlCmd.ExecuteNonQuery(); //Error occurs here
return rowaffected;
}
catch (SqlException se)
{
throw new Exception("SqlException: sqlstr=" + sqlCmd.CommandText, se);
}
finally
{
sqlCmd.Dispose();
sqlConn.Close();
}