Shnkc
Shnkc

Reputation: 2158

Add Stored Procedure Parameter into sqlDataSource, msSQL

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

Answers (2)

Jason
Jason

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

Shyju
Shyju

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

Related Questions