ALTER PROCEDURE [dbo].[SelectCompletionNonCompletionCourseReport]
@LearnerName NVARCHAR(510) = NULL,
@ManagerId INT = NULL,
@CourseId INT = NULL,
@StartDateFrom SMALLDATETIME = NULL,
@StartDateTo SMALLDATETIME = NULL,
@TeamList XML = NULL,
@JobID NVARCHAR(max)=NULL,
@CourseStatus NVARCHAR(20)=NULL,
@ReportAdminID INT=0,
@ReportTeamList NVARCHAR(max)=NULL,
@RowsTotal int = 0,
@PageIndex int = 1,
@RowsPerPage int = 10
AS
BEGIN
DECLARE @TblCrieiria TABLE
(
id INT IDENTITY(1, 1),
areacode NVARCHAR(11),
regioncode NVARCHAR(11),
teamcode NVARCHAR(11)
)
IF @TeamList IS NULL
BEGIN
INSERT INTO @TblCrieiria VALUES(NULL,NULL,NULL)
END
BEGIN
手続きの始まりです…
using (Database db = new Database(DScape.DAL.Config.ConfignPropertyName.DSCAPELMS_CONNECTION_STRING_NAME))
{
var cmd = new SqlCommand
{
CommandText = "SelectCompletionNonCompletionCourseReport",
CommandType = CommandType.StoredProcedure
};
cmd.Parameters.AddWithValue("@LearnerName", LearnerName);
cmd.Parameters.AddWithValue("@ManagerId", ManagerId);
cmd.Parameters.AddWithValue("@CourseId", CourseId);
cmd.Parameters.AddWithValue("@StartDateFrom", StartDateFrom);
cmd.Parameters.AddWithValue("@StartDateTo", StartDateTo);
cmd.Parameters.AddWithValue("@TeamList", TeamList);
cmd.Parameters.AddWithValue("@JobID", JobID);
cmd.Parameters.AddWithValue("@CourseStatus", CourseStatus);
cmd.Parameters.AddWithValue("@ReportAdminID", ReportAdminID);
cmd.Parameters.AddWithValue("@ReportTeamList", ReportTeamList);
cmd.Parameters.AddWithValue("@PageIndex", 1);
DataSet dsClient = db.GetDataSet(cmd);
if (dsClient.Tables.Count > 0)
return dsClient.Tables[0];
else
return null;
}
これはプロシージャと通信するメソッドであり、エラーが発生しました
ストアド プロシージャ パラメータ/関数/プロシージャが引数を取りすぎるため、パラメータが存在しません...
@PageIndex
パラメータについてです。値が何であるかは問題ではありません。ここでは値については説明しませんが、ストアド プロシージャで定義されているが機能しないパラメーターについては説明しませんか?
そして、記録のために、この問題は今日、コードの書き込み/変更なしでポップアップしました。そのレポートを作成しようとしたときに、昨日はすべて良かったのですが...私の隣には絶対的なチームメイトがいますSQLとC#の両方で同じコードがあり、彼のPCでは問題なく動作しますが、私の場合はこのエラーがスローされます.3時間からこれを解決しようとしていますが、完全に答えがありません.これを解決し続ける.................................
繰り返しますが、問題はDBへの接続やパラメーターのタイプ、または値からではなく、エラーはパラメーター自体でコミットされます-プロシージャには存在しません。これは私の意見では正気ではありません。