我编写了以下C#代码以从数据库中获取数据:
public static DataTable GetDetails(string startDate, string endDate, char isSpam, string Name)
{
string getDetilasQuery = @"sp_getDetails";
SqlParameter[] objSqlParameter = { new SqlParameter("@isDeleted",'n'),
new SqlParameter("@startDate",startDate),
new SqlParameter("@endDate",endDate),
new SqlParameter("@isSpam",isSpam),
new SqlParameter("@Name",Name)
};
return DL.decryptDataSet(SqlHelper.ExecuteDataset(strConnectionString, CommandType.Text, getDetilasQuery, objSqlParameter)).Tables[0];
}
我的存储过程如下:
CREATE PROCEDURE [dbo].[sp_getDetails]
(@isDeleted CHAR(1),
@startDate DATETIME,
@endDate DATETIME,
@isSpam CHAR(1),
@Name VARCHAR(MAX))
As
BEGIN
SELECT
col1, col2....
FROM
tbl_getData
WHERE
added BETWEEN @startDate AND @endDate
AND isDeleted = @isDeleted
END
但是每当我尝试使用以下代码和存储过程检索数据时,都会出现错误
存储过程需要未提供的参数@isDeleted!
但是我已经使用代码中的@isDeleted
传递了一个参数SqlParameter[]
。
任何人都可以告诉我是否丢失了某些东西,或者代码或存储过程是否有所更改?
答案 0 :(得分:1)
如@Jeroen所建议,将CommandType.Text更改为CommandType.StoredProcedure即可完成工作。