0

我想通过在 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.

如果您有任何想法,我将不胜感激。

4

2 回答 2

3

尝试在 Add() 方法中丢失“@”符号。

addStaffSql.InsertCommand = "insertNewMember";
addStaffSql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
addStaffSql.InsertParameters.Add("name", name);
addStaffSql.InsertParameters.Add("age", age);
addStaffSql.Insert();
于 2012-04-25T21:02:42.267 回答
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 !
}
于 2012-04-25T19:58:56.423 回答