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 に答える