привет, друзья, я сталкиваюсь с одной проблемой для загрузки данных в сетку.Процедура или функция ожидает параметр ', который не указан
событие загрузки страницы вызовите один метод, как LoadData() внутри я написать код этого
using (SqlConnection Sqlcon = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand())
{
Sqlcon.Open();
cmd.Connection = Sqlcon;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SP_Marketing";
//cmd.Parameters.Add(new SqlParameter("@Sno", (object) ?? null.Value));
cmd.Parameters.Add(new SqlParameter("@pvchAction", SqlDbType.VarChar,50));
cmd.Parameters["@pvchAction"].Value = "select";
cmd.Parameters.Add("@pIntErrDescOut", SqlDbType.Int).Direction = ParameterDirection.Output;
SqlAda = new SqlDataAdapter(cmd);
ds = new DataSet();
SqlAda.Fill(ds);
GridViewSample.DataSource = ds;
GridViewSample.DataBind();
}
}
находку процедуры сохранения записей в sqlada пойманы ошибки, как "Процедура или функция ожидает параметр @dateemailed который не входит в комплект»
ALTER PROCEDURE SP_Marketing
(
@Sno int =0,
@DateEmailed datetime,
@DateResponded datetime,
@EmailRep varchar(100)=null,
@Type varchar(100)=null,
@Country varchar(100)=null,
@State varchar(100)=null,
@NameoftheCompany varchar(100)=null,
@website varchar(100)=null,
@FirstName varchar(100)=null,
@LastName varchar(100)=null,
@Title varchar(100)=null,
@Email varchar(100)=null,
@Telephone varchar(100)=null,
@Capabilities varchar(100)=null,
@Focus varchar(100)=null,
@pvchCreatedBy varchar(100)=null,
@pvchAction varchar(50)=null,
@pIntErrDescOut int output
)
AS
BEGIN
if(@pvchAction='select')
begin
SELECT sno,Dateemailed,dateresponded,emailrep,[type],country,[state], , nameofthecompany,website,Firstname,Lastname,Title,email,telephone,
capabilities, Focus FROM Emailmarketing WHERE active=1
end
else if(@pvchAction='insert')
begin
INSERT INTO EmailMarketing(DateEmailed,DateResponded,EmailRep,[Type],
Country,[State],NameoftheCompany,website,FirstName,LastName,Title,Email,Telephone,Capabilities,Focus,Createdby,CreatedDt,Active)VALUES(@DateEmailed,@DateResponded,@EmailRep,@Type,
@Country,@State,@NameoftheCompany,@website,@FirstName,@LastName,@Title,@Email,@Telephone,@Capabilities,@Focus,@pvchCreatedBy,GETDATE(),1);
end
else if(@pvchAction='update')
begin
UPDATE EmailMarketing SET [email protected],[email protected],[email protected],[Type][email protected],[email protected],[State][email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],UpdatedDt=GETDATE()
WHERE [email protected];
end
else if(@pvchAction='delete')
begin
UPDATE EmailMarketing SET [email protected] WHERE [email protected];
end
IF (@@ERROR <> 0)
BEGIN
SET @pIntErrDescOut = 1
END
ELSE
BEGIN
SET @pIntErrDescOut = 0
END
END
Я не вижу никакого кода для добавления '@ DateEmailed' в качестве параметра в вашем' cmd'? Сообщение об ошибке нечеткое? –
Довольно четкое сообщение об ошибке, которое необходимо предоставить этому параметру в хранимой процедуре. – Ric
Пожалуйста, избегайте префикса ['sp_'] (http://technet.microsoft.com/en-us/library/ms187926.aspx):« Избегайте использования префикса ** sp_ ** при процедуре именования. Этот префикс используется SQL Server для обозначения системных процедур. Использование префикса может привести к разрыву кода приложения, если есть системная процедура с тем же именем ». –