戻り値(RETURN
文を使用)または出力パラメータを使用していますか?もしそうなら、ExecuteReader
は間違った選択です。 ExecuteReaderは、SPがSELECT
ステートメントを使用してデータを出力する場合にのみ、データを返します。戻り値はExecuteNonQuery
です。手順** SQL Serverで** STORED - (MSDNから引用)例えば、
CREATE PROCEDURE dbo.InsertCategory
@CategoryName nvarchar(15),
@Identity int OUT
AS
INSERT INTO Categories (CategoryName) VALUES(@CategoryName)
SET @Identity = SCOPE_IDENTITY()
RETURN @@ROWCOUNT
とコードは
// Assumes connection is a valid SqlConnection.
SqlCommand command = new SqlCommand("InsertCategory" , connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = command.Parameters.Add(
"@RowCount", SqlDbType.Int);
parameter.Direction = ParameterDirection.ReturnValue;
parameter = command.Parameters.Add(
"@CategoryName", SqlDbType.NChar, 15);
parameter = command.Parameters.Add("@Identity", SqlDbType.Int);
parameter.Direction = ParameterDirection.Output;
command.Parameters["@CategoryName"].Value = "New Category";
command.ExecuteNonQuery();
Int32 categoryID = (Int32) command.Parameters["@Identity"].Value;
Int32 rowCount = (Int32) command.Parameters["@RowCount"].Value;
http://msdn.microsoft.com/en-us/library/3btz0xwf.aspx
それのストアを参照してください。** D **手順になります(ストアとは関係ありません) –
ストアドプロシージャの定義を表示できますか?どんなパラメータを渡しますか?どんなパラメータが返されますか? –