以下は、MSSQLサーバーに保存されているSPです。
USE [testdb]
GO
/****** Object: StoredProcedure [dbo].[insertSerial] Script Date: 11/05/2012 16:38:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[insertSerial]
AS
DECLARE @start int
DECLARE @end int
DECLARE @expdate datetime
BEGIN TRAN
WHILE @start < @end
BEGIN
INSERT tbl_serial VALUES (@start, @expdate)
SET @start = @start + 1
END
COMMIT TRAN
次に、ASP.NETアプリケーションから次のようにSPを呼び出そうとします-
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString);
SqlCommand cmd = new SqlCommand("insertSerial", sqlconn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@start", txtStart.Text);
cmd.Parameters.AddWithValue("@end", txtEnd.Text);
cmd.Parameters.AddWithValue("@expdate", System.DateTime.Now);
try
{
sqlconn.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
lblStatus.Text = ex.Message;
}
finally
{
sqlconn.Close();
}
次に、このProcedure insertSerial has no parameters and arguments were supplied.
エラーが発生しました。SPでパラメータを宣言する方法が正しくないためですか?もしそうなら、どうすればそれらを修正できますか?