I am trying to execute a stored procedure with this declaration:
ALTER PROCEDURE [dbo].[getByName]
@firstName varchar,
@lastName varchar
AS
...
And I am calling in C# as follows:
public List<Person> GetPersonByName(string first, string last)
{
var people = new List<Person>();
var connString = ConfigurationManager.ConnectionStrings["MyDbConnString"].ConnectionString;
using (var conn = new SqlConnection(connString))
{
using (var cmd = new SqlCommand("dbo.getByName",conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@firstName", SqlDbType.VarChar, 50)).Value = first;
cmd.Parameters.Add(new SqlParameter("@lastName", SqlDbType.VarChar, 50)).Value = last;
conn.Open();
using (var reader = cmd.ExecuteReader())
{
people = ReadPeopleData(reader);
}
conn.Close();
}
}
return people;
}
But I just get back this error:
Procedure or function 'getByName' expects parameter '@firstName' which was not supplied.
Update:
ALTER PROCEDURE [dbo].[getEmployeesByName]
@firstName varchar(50),
@lastName varchar(50)
AS
...
and stating:
cmd.Parameters.Add(new SqlParameter("@firstName", SqlDbType.VarChar, 50)).Value
for both parameters, yet it continues to throw the exception.