Я хочу запустить sp из моего кода. имя sp хранится в БД. Я передаю параметры через словарь. Этот код является одним из моих методов службы wcf, которые размещаются в службе Windows. мой код:
private DataSet RunReport(int id, ParameterDictionary parametersDic)
{
DataSet result = new DataSet();
try
{
DataSet report = GetReportDataset(id);
if (report.Tables[0].Rows.Count > 0)
{
string reportType = GetReportTypeDataset(Convert.ToInt32(report.Tables[0].Rows[0]["ReportTypeID"]));
if (reportType != ReportType.StoredProcedure.ToString())
{
throw new Exception("your report is not a sp report.");
}
using (DbCommand paramCommand = DatabaseManager.Database.GetStoredProcCommand(report.Tables[0].Rows[0]["SQLQuery"].ToString()))
{
foreach (var parameter in parametersDic)
{
DatabaseManager.Database.SetParameterValue(paramCommand, parameter.Key, parameter.Value);
}
result = DatabaseManager.Database.ExecuteDataSet(paramCommand);
result.AcceptChanges();
}
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
Когда я запускаю этот код, появляется ошибка ниже:
SqlParameter с ParameterName 'ID' не содержится в этом
SqlParameterCollection.
Кроме того, когда я вызываю этот метод через формы win, все в порядке.
в чем проблема?