Динамически установленный Crystal Report по-прежнему запрашивает вход в БД
Я пытаюсь развернутьCrystal Reports
в моемMVC
приложение. Чтобы в полной мере использовать Crystal Report Viewer, я должен использоватьwebform
, который работает довольно хорошо в моей среде разработки.
Приложение будет развернуто на пользователяS серверов и подключаться к своим личным БД. Это означает, что у меня нет окончательной информации о соединении при разработке отчета или приложения.
Я могу успешно подключиться, используя их записи в файле web.config, загрузитьDataTable
с информацией об отчете и передать ее в отчет. Однако в отчете по-прежнему запрашиваются учетные данные базы данных. Отчет настроен для подключения к моей базе данных, поэтому он запрашивает мои учетные данные и не будет работать без них. Тем не менее, окончательный отчет показывает правильную информацию из их базы данных.
Я не уверен, что мне нужно что-то изменить в отчете или в коде. Вот так я настраиваю отчетReportSource
сейчас:
protected void Page_Load(object sender, EventArgs e)
{
string strReportName = System.Web.HttpContext.Current.Session["ReportName"].ToString();
try
{
ReportDocument rd = new ReportDocument();
string strRptPath = Server.MapPath("~/") + "Rpts//" + strReportName;
rd.Load(strRptPath);
SqlParameter[] sqlParams = {};
DataTable testDt = DBHelper.GetTable("rptInvtDuplDesc", sqlParams);
rd.DataSourceConnections.Clear();
rd.SetDataSource(testDt);
CrystalReportViewer1.ReportSource = rd;
}
else
{
Response.Write("Nothing Found; No Report name found");
}
}
Как запретить отчету запрашивать исходные учетные данные?
РЕДАКТИРОВАТЬ:
Если я передам логин моей БД, как это:
rd.SetDatabaseLogon("username", "password");
Я не получаю логин db снова. Учетные данные должны быть для БД, использованной для создания отчета, но отображаемые результаты получены изDataTable
заселено по методу выше. Если у него есть данные, которые ему нужны из текущего БД, зачем ему подключаться к исходному БД?
EDIT2:
У меня есть 2 источника данных для этого отчета. Одна - это таблица из БД, а другая - результат хранимой процедуры. Теперь я узнал, что является причиной дополнительного входа в систему.