저장 프로 시저를 호출하는 C# 코드를 통해 SQL 테이블에 행을 삽입하고 있습니다.저장 프로 시저의 SQL 오류
C# 코드 :
SqlCommand myCommand = thisConnection.CreateCommand();
myCommand.CommandText = "FederationUpdateCTRAndImpressionCountsForAllYPIds";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add("@bid", SqlDbType.UniqueIdentifier);
myCommand.Parameters.Add("@uid", SqlDbType.UniqueIdentifier);
myCommand.Parameters.Add("@imp", SqlDbType.VarChar);
myCommand.Parameters.Add("@ctr", SqlDbType.VarChar);
while (myfederationReader.Read())
{
myCommand.Parameters["@bid"].Value = myfederationReader["BusinessId"];
myCommand.Parameters["@uid"].Value = myfederationReader["UId"];
myCommand.Parameters["@imp"].Value = myfederationReader["Impression"];
myCommand.Parameters["@ctr"].Value = myfederationReader["CTR"];
rowsAffected = myCommand.ExecuteNonQuery();
}
저장된 프로 시저 :
그것을 실행에CREATE PROCEDURE [dbo].[FederationUpdateCTRAndImpressionCountsForAllYPIds]
@bid uniqueidentifier,
@uid uniqueidentifier,
@imp varchar(255),
@ctr varchar(255)
AS BEGIN
UPDATE BasicBusinessInformation
SET BasicBusinessInformation.CTR = @ctr , BasicBusinessInformation.Impression = @imp
WHERE BasicBusinessInformation.BusinessId = @bid AND BasicBusinessInformation.UId = @uid
END
, 다음과 같은 오류가보고됩니다
절차는 매개 변수가없는 및 인수가 제공되었다
http://stackoverflow.com/questions/13230126/procedure-insertserial처럼이 명령 을 발사하기 전에 독자로부터 데이터를 가져 오기 위해 시도 parametres -has-no-parameters-and-arguments-were-supplied- – Andrew
은'thisConnection'이 당신이 DataReader'myfederationReader'를 위해 사용하고있는 것과 동일한 연결입니까? 귀하의 프로 시저가 귀하의 리더 소스와 동일한 데이터베이스에 있습니까? Enterprise Manager에서 프로 시저를 확장하면 매개 변수가 표시됩니까? – dash
매개 변수가없는 다른 스키마, 특히 기본 스키마에 'FederationUpdateCTRAndImpressionCountsForAllYPIds'라는 또 다른 프로 시저가 있습니까? SqlCommand에서 프로 시저 이름을 스키마 한정하면 어떻게됩니까? – GarethD