using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Data;
using System.Data.SqlClient;
protected void Page_Init(object sender, System.EventArgs e) {
ConfigureReport();
}
private void ConfigureReport() {
if (!Page.IsPostBack) {
ConnectionInfo myConnectionInfo = new ConnectionInfo();
myConnectionInfo.DatabaseName = DatabaseName;
myConnectionInfo.UserID = userid;
myConnectionInfo.Password = password;
string ReportPath = Server.MapPath("YourReport.rpt");
ReportViewer1.ReportSource = ReportPath;
ParameterField field1 = this.ReportViewer1.ParameterFieldInfo(0);
ParameterField field2 = this.ReportViewer1.ParameterFieldInfo(1);
ParameterDiscreteValue val1 = new ParameterDiscreteValue();
ParameterDiscreteValue val2 = new ParameterDiscreteValue();
val1.Value = "value1";
val2.Value = "value2";
field1.CurrentValues.Add(val1);
field2.CurrentValues.Add(val2);
SetDBLogonForReport(myConnectionInfo);
}
}
private void SetDBLogonForReport(ConnectionInfo myConnectionInfo) {
TableLogOnInfos myTableLogOnInfos = ReportViewer1.LogOnInfo();
foreach (TableLogOnInfo myTableLogOnInfo in myTableLogOnInfos) {
myTableLogOnInfo.ConnectionInfo = myConnectionInfo;
}
}
Create your parameterized stored procedure in sql server
Sample stored procedure:
CREATE PROCEDURE sp_YourProcedure
@value1 int,
@value2 int
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM Table WHERE column1=@value1 and column2=@value2
END