我想在mssql中使用存储过程插入一个值。这是我的存储过程:
ALTER PROCEDURE dbo.insertNewMember
(@name varchar(30),
@age int )
AS
BEGIN
INSERT INTO member(memId, name, age) VALUES ('', @name, @age);
END
我的C#代码,使用此程序:
addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("@name", name);
addStaffSql.InsertParameters.Add("@age", age);
addStaffSql.Insert();
但是当我运行程序时出现以下错误:
Procedure or function 'insertNewMember' expects parameter '@name', which was not supplied.
如果您有任何想法,我将不胜感激。
答案 0 :(得分:3)
尝试在Add()方法中丢失“@”符号。
addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("name", name);
addStaffSql.InsertParameters.Add("age", age);
addStaffSql.Insert();
答案 1 :(得分:0)
我猜你在名为name的变量中传递 null 。您可能想要更改代码。
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 !
}