Reputation: 2158
I want to insert a value by using stored procedure in mssql. This is my stored procedure :
ALTER PROCEDURE dbo.insertNewMember
(@name varchar(30),
@age int )
AS
BEGIN
INSERT INTO member(memId, name, age) VALUES ('', @name, @age);
END
My C# code, to use this procedure:
addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("@name", name);
addStaffSql.InsertParameters.Add("@age", age);
addStaffSql.Insert();
But I got the following error when I run the program:
Procedure or function 'insertNewMember' expects parameter '@name', which was not supplied.
If you have got any idea, I will appreciate.
Upvotes: 0
Views: 2965
Reputation: 1325
Try losing the "@" symbol in the Add() methods.
addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("name", name);
addStaffSql.InsertParameters.Add("age", age);
addStaffSql.Insert();
Upvotes: 3
Reputation: 218722
I guess you are passing null in the variable called name. You may want to change your code for that.
if(name!=null)
{
addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("@name", name);
addStaffSql.InsertParameters.Add("@age", age);
addStaffSql.Insert();
}
else
{
//Send message back to user that name is not filled properly !
}
Upvotes: 0