I have a stored procedure:
CREATE PROCEDURE myproc(@a nvarchar(50), @b nvarchar(100), @c bit)
AS ...
SELECT @retVal;
I have the following aspx code:
SqlCommand cmd = new SqlCommand("myproc", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@a", a);
cmd.Parameters.AddWithValue("@b", b);
cmd.Parameters.Add("@c", SqlDbType.Bit).Value = false;
SqlParameter returnValue = new SqlParameter("@retVal", SqlDbType.NVarChar, 9999999);
returnValue.Direction = ParameterDirection.Output;
cmd.Parameters.Add(returnValue);
conn.Open();
cmd.ExecuteNonQuery();
retVal = (string)cmd.Parameters["@retVal"].Value;
conn.Close();
This gives me the error:
Procedure or function myproc has too many arguments specified.
If I remove the line:
cmd.Parameters.Add("@c", SqlDbType.Bit).Value = false;
I get this error:
Procedure or function 'myproc' expects parameter '@c', which was not supplied
I have tried these alternatives for this line:
cmd.Parameters.AddWithValue("@c", 0);
cmd.Parameters.AddWithValue("@c", false);
How do I pass that BIT parameter?